home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_bash.idb / usr / freeware / catman / u_man / cat1 / bash.Z / bash
Encoding:
Text File  |  1999-04-16  |  304.8 KB  |  5,677 lines

  1.  
  2.  
  3.  
  4.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       bash - GNU Bourne-Again SHell
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.       bbbbaaaasssshhhh [options] [file]
  13.  
  14.      CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
  15.       Bash is Copyright (C)    1989-1999 by the Free Software
  16.       Foundation, Inc.
  17.  
  18.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.       BBBBaaaasssshhhh is an sssshhhh-compatible command language interpreter    that
  20.       executes commands read from the standard input or from a
  21.       file.     BBBBaaaasssshhhh also incorporates    useful features    from the _K_o_r_n
  22.       and _C    shells (kkkksssshhhh and    ccccsssshhhh).
  23.  
  24.       BBBBaaaasssshhhh is intended to be a conformant implementation of    the
  25.       IEEE POSIX Shell and Tools specification (IEEE Working Group
  26.       1003.2).
  27.  
  28.      OOOOPPPPTTTTIIIIOOOONNNNSSSS
  29.       In addition to the single-character shell options documented
  30.       in the description of    the sssseeeetttt    builtin    command, bbbbaaaasssshhhh
  31.       interprets the following options when    it is invoked:
  32.  
  33.       ----cccc _s_t_r_i_n_g If the ----cccc option is    present, then commands are
  34.             read from _s_t_r_i_n_g.  If there    are arguments after
  35.             the    _s_t_r_i_n_g,    they are assigned to the positional
  36.             parameters,    starting with $$$$0000.
  37.       ----rrrr        If the ----rrrr option is    present, the shell becomes
  38.             _r_e_s_t_r_i_c_t_e_d (see RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD SSSSHHHHEEEELLLLLLLL below).
  39.       ----iiii        If the ----iiii option is    present, the shell is
  40.             _i_n_t_e_r_a_c_t_i_v_e.
  41.       ----ssss        If the ----ssss option is    present, or if no arguments
  42.             remain after option    processing, then commands are
  43.             read from the standard input.  This    option allows
  44.             the    positional parameters to be set    when invoking
  45.             an interactive shell.
  46.       ----DDDD        A list of all double-quoted    strings    preceded by $$$$
  47.             is printed on the standard ouput.  These are the
  48.             strings that are subject to    language translation
  49.             when the current locale is not C or    POSIX.    This
  50.             implies the    ----nnnn option; no commands will be
  51.             executed.
  52.       --------        A -------- signals the end of options and    disables
  53.             further option processing.    Any arguments after
  54.             the    -------- are treated as filenames and    arguments.  An
  55.             argument of    ---- is equivalent    to --------.
  56.  
  57.       BBBBaaaasssshhhh also interprets a number    of multi-character options.
  58.       These    options    must appear on the command line    before the
  59.       single-character options in order for    them to    be recognized.
  60.  
  61.  
  62.  
  63.      Page 1                         (printed 3/25/99)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  71.  
  72.  
  73.  
  74.       --------dddduuuummmmpppp----ppppoooo----ssssttttrrrriiiinnnnggggssss
  75.            Equivalent to ----DDDD, but the output    is in the GNU _g_e_t_t_e_x_t
  76.            ppppoooo (portable object) file format.
  77.       --------dddduuuummmmpppp----ssssttttrrrriiiinnnnggggssss
  78.            Equivalent to ----DDDD.
  79.       --------hhhheeeellllpppp
  80.            Display a usage message on standard output and exit
  81.            successfully.
  82.       --------llllooooggggiiiinnnn
  83.            Make bbbbaaaasssshhhh act as    if it had been invoked as a login
  84.            shell (see IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN below).
  85.       --------nnnnooooeeeeddddiiiittttiiiinnnngggg
  86.            Do not use the GNU rrrreeeeaaaaddddlllliiiinnnneeee library to read command
  87.            lines if    interactive.
  88.       --------nnnnoooopppprrrrooooffffiiiilllleeee
  89.            Do not read either the system-wide startup file
  90.            /_e_t_c/_p_r_o_f_i_l_e or any of the personal initialization
  91.            files ~/._b_a_s_h__p_r_o_f_i_l_e, ~/._b_a_s_h__l_o_g_i_n, or    ~/._p_r_o_f_i_l_e.
  92.            By default, bbbbaaaasssshhhh    reads these files when it is invoked
  93.            as a login shell    (see IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN    below).
  94.       --------nnnnoooorrrrcccc
  95.            Do not read and execute the personal initialization
  96.            file ~/._b_a_s_h_r_c if the shell is interactive.  This
  97.            option is on by default if the shell is invoked as sssshhhh.
  98.       --------ppppoooossssiiiixxxx
  99.            Change the behavior of bbbbaaaasssshhhh where the default operation
  100.            differs from the    POSIX 1003.2 standard to match the
  101.            standard.
  102.       --------rrrrccccffffiiiilllleeee _f_i_l_e
  103.            Execute commands    from _f_i_l_e instead of the standard
  104.            personal    initialization file ~/._b_a_s_h_r_c if the shell is
  105.            interactive (see    IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN below).
  106.       --------rrrreeeessssttttrrrriiiicccctttteeeedddd
  107.            The shell becomes restricted (see RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD SSSSHHHHEEEELLLLLLLL
  108.            below).
  109.       --------vvvveeeerrrrbbbboooosssseeee
  110.            Equivalent to  ----vvvv.
  111.       --------vvvveeeerrrrssssiiiioooonnnn
  112.            Show version information    for this instance of bbbbaaaasssshhhh on
  113.            the standard output and exit successfully.
  114.  
  115.      AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  116.       If arguments remain after option processing, and neither the
  117.       ----cccc nor the ----ssss    option has been    supplied, the first argument
  118.       is assumed to    be the name of a file containing shell
  119.       commands.  If    bbbbaaaasssshhhh is    invoked    in this    fashion, $$$$0000 is set to
  120.       the name of the file,    and the    positional parameters are set
  121.       to the remaining arguments.  BBBBaaaasssshhhh reads and executes
  122.       commands from    this file, then    exits.    BBBBaaaasssshhhh's exit status is
  123.       the exit status of the last command executed in the script.
  124.       If no    commands are executed, the exit    status is 0.
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                         (printed 3/25/99)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  137.  
  138.  
  139.  
  140.      IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN
  141.       A _l_o_g_i_n _s_h_e_l_l    is one whose first character of    argument zero
  142.       is a ----, or one started with the --------llllooooggggiiiinnnn option.
  143.  
  144.       An _i_n_t_e_r_a_c_t_i_v_e shell is one whose standard input and output
  145.       are both connected to    terminals (as determined by
  146.       _i_s_a_t_t_y(3)), or one started with the ----iiii option.  PPPPSSSS1111 is set
  147.       and $$$$---- includes iiii if bbbbaaaasssshhhh is interactive, allowing a shell
  148.       script or a startup file to test this    state.
  149.  
  150.       The following    paragraphs describe how    bbbbaaaasssshhhh executes its
  151.       startup files.  If any of the    files exist but    cannot be
  152.       read,    bbbbaaaasssshhhh reports an    error.    Tildes are expanded in file
  153.       names    as described below under TTTTiiiillllddddeeee EEEExxxxppppaaaannnnssssiiiioooonnnn in the
  154.       EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN section.
  155.  
  156.       When bbbbaaaasssshhhh is invoked as an interactive login shell, or as a
  157.       non-interactive shell    with the --------llllooooggggiiiinnnn option, it first
  158.       reads    and executes commands from the file /_e_t_c/_p_r_o_f_i_l_e, if
  159.       that file exists.  After reading that    file, it looks for
  160.       ~/._b_a_s_h__p_r_o_f_i_l_e, ~/._b_a_s_h__l_o_g_i_n, and ~/._p_r_o_f_i_l_e, in that
  161.       order, and reads and executes    commands from the first    one
  162.       that exists and is readable.    The --------nnnnoooopppprrrrooooffffiiiilllleeee    option may be
  163.       used when the    shell is started to inhibit this behavior.
  164.  
  165.       When a login shell exits, bbbbaaaasssshhhh reads and executes commands
  166.       from the file    ~/._b_a_s_h__l_o_g_o_u_t,    if it exists.
  167.  
  168.       When an interactive shell that is not    a login    shell is
  169.       started, bbbbaaaasssshhhh    reads and executes commands from ~/._b_a_s_h_r_c, if
  170.       that file exists.  This may be inhibited by using the    --------nnnnoooorrrrcccc
  171.       option.  The --------rrrrccccffffiiiilllleeee    _f_i_l_e option will force bbbbaaaasssshhhh to read
  172.       and execute commands from _f_i_l_e instead of ~/._b_a_s_h_r_c.
  173.  
  174.       When bbbbaaaasssshhhh is started non-interactively, to run a shell
  175.       script, for example, it looks    for the    variable BBBBAAAASSSSHHHH____EEEENNNNVVVV in
  176.       the environment, expands its value if    it appears there, and
  177.       uses the expanded value as the name of a file    to read    and
  178.       execute.  BBBBaaaasssshhhh behaves as if the following command were
  179.       executed:
  180.  
  181.            if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
  182.       but the value    of the PPPPAAAATTTTHHHH variable is    not used to search for
  183.       the file name.
  184.  
  185.       If bbbbaaaasssshhhh is invoked with the name sssshhhh, it tries    to mimic the
  186.       startup behavior of historical versions of sssshhhh    as closely as
  187.       possible, while conforming to    the POSIX standard as well.
  188.       When invoked as an interactive login shell, or a non-
  189.       interactive shell with the --------llllooooggggiiiinnnn option, it    first attempts
  190.       to read and execute commands from /_e_t_c/_p_r_o_f_i_l_e and
  191.       ~/._p_r_o_f_i_l_e, in that order.  The --------nnnnoooopppprrrrooooffffiiiilllleeee option may be
  192.  
  193.  
  194.  
  195.      Page 3                         (printed 3/25/99)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  203.  
  204.  
  205.  
  206.       used to inhibit this behavior.  When invoked as an
  207.       interactive shell with the name sssshhhh, bbbbaaaasssshhhh looks for the
  208.       variable EEEENNNNVVVV,    expands    its value if it    is defined, and    uses
  209.       the expanded value as    the name of a file to read and
  210.       execute.  Since a shell invoked as sssshhhh    does not attempt to
  211.       read and execute commands from any other startup files, the
  212.       --------rrrrccccffffiiiilllleeee option has no effect.  A non-interactive shell
  213.       invoked with the name    sssshhhh does    not attempt to read any    other
  214.       startup files. When invoked as sssshhhh, bbbbaaaasssshhhh enters _p_o_s_i_x mode
  215.       after    the startup files are read.
  216.  
  217.       When bbbbaaaasssshhhh is started in _p_o_s_i_x    mode, as with the --------ppppoooossssiiiixxxx
  218.       command line option, it follows the POSIX standard for
  219.       startup files.  In this mode,    interactive shells expand the
  220.       EEEENNNNVVVV variable and commands are    read and executed from the
  221.       file whose name is the expanded value.  No other startup
  222.       files    are read.
  223.  
  224.       BBBBaaaasssshhhh attempts    to determine when it is    being run by the
  225.       remote shell daemon, usually _r_s_h_d.  If bbbbaaaasssshhhh determines it is
  226.       being    run by _r_s_h_d, it    reads and executes commands from
  227.       ~/._b_a_s_h_r_c, if    that file exists and is    readable.  It will not
  228.       do this if invoked as    sssshhhh.  The --------nnnnoooorrrrcccc    option may be used to
  229.       inhibit this behavior, and the --------rrrrccccffffiiiilllleeee option may be    used
  230.       to force another file    to be read, but    _r_s_h_d does not
  231.       generally invoke the shell with those    options    or allow them
  232.       to be    specified.
  233.  
  234.       If the shell is started with the effective user (group) id
  235.       not equal to the real    user (group) id, and the ----pppp option is
  236.       not supplied,    no startup files are read, shell functions are
  237.       not inherited    from the environment, the SSSSHHHHEEEELLLLLLLLOOOOPPPPTTTTSSSS variable,
  238.       if it    appears    in the environment, is ignored,    and the
  239.       effective user id is set to the real user id.     If the    ----pppp
  240.       option is supplied at    invocation, the    startup    behavior is
  241.       the same, but    the effective user id is not reset.
  242.  
  243.      DDDDEEEEFFFFIIIINNNNIIIITTTTIIIIOOOONNNNSSSS
  244.       The following    definitions are    used throughout    the rest of
  245.       this document.
  246.       bbbbllllaaaannnnkkkk
  247.            A space or tab.
  248.       wwwwoooorrrrdddd A sequence of characters    considered as a    single unit by
  249.            the shell.  Also    known as a ttttooookkkkeeeennnn.
  250.       nnnnaaaammmmeeee A _w_o_r_d consisting only of alphanumeric characters and
  251.            underscores, and    beginning with an alphabetic character
  252.            or an underscore.  Also referred    to as an iiiiddddeeeennnnttttiiiiffffiiiieeeerrrr.
  253.       mmmmeeeettttaaaacccchhhhaaaarrrraaaacccctttteeeerrrr
  254.            A character that, when unquoted,    separates words.  One
  255.            of the following:
  256.            ||||  &&&& ;;;; ((((    )))) <<<< >>>> ssssppppaaaacccceeee ttttaaaabbbb
  257.       ccccoooonnnnttttrrrroooollll ooooppppeeeerrrraaaattttoooorrrr
  258.  
  259.  
  260.  
  261.      Page 4                         (printed 3/25/99)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  269.  
  270.  
  271.  
  272.            A _t_o_k_e_n that performs a control function.  It is    one of
  273.            the following symbols:
  274.            |||||||| &&&& &&&&&&&& ;;;; ;;;;;;;; (((( ))))    |||| <<<<nnnneeeewwwwlllliiiinnnneeee>>>>
  275.  
  276.      RRRREEEESSSSEEEERRRRVVVVEEEEDDDD WWWWOOOORRRRDDDDSSSS
  277.       _R_e_s_e_r_v_e_d _w_o_r_d_s are words that    have a special meaning to the
  278.       shell.  The following    words are recognized as    reserved when
  279.       unquoted and either the first    word of    a simple command (see
  280.       SSSSHHHHEEEELLLLLLLL    GGGGRRRRAAAAMMMMMMMMAAAARRRR    below) or the third word of a ccccaaaasssseeee or ffffoooorrrr
  281.       command:
  282.  
  283.       !!!! ccccaaaasssseeee  ddddoooo ddddoooonnnneeee eeeelllliiiiffff eeeellllsssseeee eeeessssaaaacccc ffffiiii ffffoooorrrr    ffffuuuunnnnccccttttiiiioooonnnn iiiiffff iiiinnnn sssseeeelllleeeecccctttt
  284.       tttthhhheeeennnn uuuunnnnttttiiiillll wwwwhhhhiiiilllleeee {{{{ }}}} ttttiiiimmmmeeee [[[[[[[[ ]]]]]]]]
  285.  
  286.      SSSSHHHHEEEELLLLLLLL GGGGRRRRAAAAMMMMMMMMAAAARRRR
  287.     SSSSiiiimmmmpppplllleeee CCCCoooommmmmmmmaaaannnnddddssss
  288.       A _s_i_m_p_l_e _c_o_m_m_a_n_d is a    sequence of optional variable
  289.       assignments followed by bbbbllllaaaannnnkkkk-separated words    and
  290.       redirections,    and terminated by a _c_o_n_t_r_o_l _o_p_e_r_a_t_o_r.  The
  291.       first    word specifies the command to be executed.  The
  292.       remaining words are passed as    arguments to the invoked
  293.       command.
  294.  
  295.       The return value of a    _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or
  296.       128+_n    if the command is terminated by    signal _n.
  297.  
  298.     PPPPiiiippppeeeelllliiiinnnneeeessss
  299.       A _p_i_p_e_l_i_n_e is    a sequence of one or more commands separated
  300.       by the character ||||.  The format for a    pipeline is:
  301.  
  302.            [ttttiiiimmmmeeee [----pppp]] [ ! ] _c_o_m_m_a_n_d [ |||| _c_o_m_m_a_n_d_2 ... ]
  303.  
  304.       The standard output of _c_o_m_m_a_n_d is connected to the standard
  305.       input    of _c_o_m_m_a_n_d_2.  This connection is performed before any
  306.       redirections specified by the    command    (see RRRREEEEDDDDIIIIRRRREEEECCCCTTTTIIIIOOOONNNN
  307.       below).
  308.  
  309.       If the reserved word !!!! precedes a pipeline, the exit status
  310.       of that pipeline is the logical NOT of the exit status of
  311.       the last command.  Otherwise,    the status of the pipeline is
  312.       the exit status of the last command.    The shell waits    for
  313.       all commands in the pipeline to terminate before returning a
  314.       value.
  315.  
  316.       If the ttttiiiimmmmeeee reserved word precedes a pipeline, the elapsed
  317.       as well as user and system time consumed by its execution
  318.       are reported when the    pipeline terminates.  The ----pppp option
  319.       changes the output format to that specified by POSIX.     The
  320.       TTTTIIIIMMMMEEEEFFFFOOOORRRRMMMMAAAATTTT variable may be set to a format string that
  321.       specifies how    the timing information should be displayed;
  322.       see the description of TTTTIIIIMMMMEEEEFFFFOOOORRRRMMMMAAAATTTT under SSSShhhheeeellllllll    VVVVaaaarrrriiiiaaaabbbblllleeeessss
  323.       below.
  324.  
  325.  
  326.  
  327.      Page 5                         (printed 3/25/99)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  335.  
  336.  
  337.  
  338.       Each command in a pipeline is    executed as a separate process
  339.       (i.e., in a subshell).
  340.  
  341.     LLLLiiiissssttttssss
  342.       A _l_i_s_t is a sequence of one or more pipelines    separated by
  343.       one of the operators ;;;;, &&&&, &&&&&&&&, or ||||||||,    and optionally
  344.       terminated by    one of ;;;;, &&&&, or    <<<<nnnneeeewwwwlllliiiinnnneeee>>>>.
  345.  
  346.       Of these list    operators, &&&&&&&& and |||||||| have equal    precedence,
  347.       followed by ;;;;    and &&&&,,,, which have equal    precedence.
  348.  
  349.       If a command is terminated by    the control operator &&&&,    the
  350.       shell    executes the command in    the _b_a_c_k_g_r_o_u_n_d in a subshell.
  351.       The shell does not wait for the command to finish, and the
  352.       return status    is 0.  Commands    separated by a ;;;; are executed
  353.       sequentially;    the shell waits    for each command to terminate
  354.       in turn.  The    return status is the exit status of the    last
  355.       command executed.
  356.  
  357.       The control operators    &&&&&&&& and |||||||| denote AND lists and OR
  358.       lists, respectively.    An AND list has    the form
  359.  
  360.            _c_o_m_m_a_n_d &&&&&&&& _c_o_m_m_a_n_d_2
  361.  
  362.       _c_o_m_m_a_n_d_2 is executed if, and only if,    _c_o_m_m_a_n_d    returns    an
  363.       exit status of zero.
  364.  
  365.       An OR    list has the form
  366.  
  367.            _c_o_m_m_a_n_d |||||||| _c_o_m_m_a_n_d_2
  368.  
  369.       _c_o_m_m_a_n_d_2 is executed if and only if _c_o_m_m_a_n_d returns a    non-
  370.       zero exit status.  The return    status of AND and OR lists is
  371.       the exit status of the last command executed in the list.
  372.  
  373.     CCCCoooommmmppppoooouuuunnnndddd CCCCoooommmmmmmmaaaannnnddddssss
  374.       A _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d is    one of the following:
  375.  
  376.       (_l_i_s_t)
  377.            _l_i_s_t is executed    in a subshell.    Variable assignments
  378.            and builtin commands that affect    the shell's
  379.            environment do not remain in effect after the command
  380.            completes.  The return status is    the exit status    of
  381.            _l_i_s_t.
  382.  
  383.       { _l_i_s_t; }
  384.            _l_i_s_t is simply executed in the current shell
  385.            environment.  _l_i_s_t must be terminated with a newline or
  386.            semicolon.  This    is known as a _g_r_o_u_p _c_o_m_m_a_n_d.  The
  387.            return status is    the exit status    of _l_i_s_t.
  388.  
  389.       ((_e_x_p_r_e_s_s_i_o_n))
  390.  
  391.  
  392.  
  393.      Page 6                         (printed 3/25/99)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  401.  
  402.  
  403.  
  404.            The _e_x_p_r_e_s_s_i_o_n is evaluated according to    the rules
  405.            described below under AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC    EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN.  If    the
  406.            value of    the expression is non-zero, the    return status
  407.            is 0; otherwise the return status is 1.    This is
  408.            exactly equivalent to lllleeeetttt """"_e_x_p_r_e_s_s_i_o_n"""".
  409.  
  410.       [[[[[[[[ _e_x_p_r_e_s_s_i_o_n    ]]]]]]]]
  411.            Return a    status of 0 or 1 depending on the evaluation
  412.            of the conditional expression _e_x_p_r_e_s_s_i_o_n.  Expressions
  413.            are composed of the primaries described below under
  414.            CCCCOOOONNNNDDDDIIIITTTTIIIIOOOONNNNAAAALLLL EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS.     Word splitting    and pathname
  415.            expansion are not performed on the words    between    the [[[[[[[[
  416.            and ]]]]]]]]; tilde expansion,    parameter and variable
  417.            expansion, arithmetic expansion,    command    substitution,
  418.            process substitution, and quote removal are performed.
  419.  
  420.            When the    ======== and !!!!==== operators are    used, the string to
  421.            the right of the    operator is considered a pattern and
  422.            matched according to the    rules described    below under
  423.            PPPPaaaatttttttteeeerrrrnnnn MMMMaaaattttcccchhhhiiiinnnngggg.  The return value is 0    if the string
  424.            matches or does not match the pattern, respectively,
  425.            and 1 otherwise.     Any part of the pattern may be    quoted
  426.            to force    it to be matched as a string.
  427.  
  428.            Expressions may be combined using the following
  429.            operators, listed in decreasing order of    precedence:
  430.  
  431.            (((( _e_x_p_r_e_s_s_i_o_n ))))
  432.             Returns the    value of _e_x_p_r_e_s_s_i_o_n.  This may be used
  433.             to override    the normal precedence of operators.
  434.            !!!! _e_x_p_r_e_s_s_i_o_n
  435.             True if _e_x_p_r_e_s_s_i_o_n is false.
  436.            _e_x_p_r_e_s_s_i_o_n_1 &&&&&&&& _e_x_p_r_e_s_s_i_o_n_2
  437.             True if both _e_x_p_r_e_s_s_i_o_n_1 and _e_x_p_r_e_s_s_i_o_n_2 are true.
  438.            _e_x_p_r_e_s_s_i_o_n_1 |||||||| _e_x_p_r_e_s_s_i_o_n_2
  439.             True if either _e_x_p_r_e_s_s_i_o_n_1 or _e_x_p_r_e_s_s_i_o_n_2 is true.
  440.  
  441.       The &&&&&&&& and ||||||||    operators do not execute _e_x_p_r_e_s_s_i_o_n_2 if    the
  442.       value    of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to    determine the return
  443.       value    of the entire conditional expression.
  444.  
  445.       ffffoooorrrr _n_a_m_e [ iiiinnnn    _w_o_r_d ] ; ddddoooo _l_i_s_t ; ddddoooonnnneeee
  446.            The list    of words following iiiinnnn is expanded, generating
  447.            a list of items.     The variable _n_a_m_e is set to each
  448.            element of this list in turn, and _l_i_s_t is executed each
  449.            time.  If the iiiinnnn    _w_o_r_d is    omitted, the ffffoooorrrr command
  450.            executes    _l_i_s_t once for each positional parameter    that
  451.            is set (see PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS below).  The return status is
  452.            the exit    status of the last command that    executes.  If
  453.            the expansion of    the items following iiiinnnn results in an
  454.            empty list, no commands are executed, and the return
  455.            status is 0.
  456.  
  457.  
  458.  
  459.      Page 7                         (printed 3/25/99)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  467.  
  468.  
  469.  
  470.       sssseeeelllleeeecccctttt _n_a_m_e [    iiiinnnn _w_o_r_d    ] ; ddddoooo _l_i_s_t ; ddddoooonnnneeee
  471.            The list    of words following iiiinnnn is expanded, generating
  472.            a list of items.     The set of expanded words is printed
  473.            on the standard error, each preceded by a number.  If
  474.            the iiiinnnn _w_o_r_d is omitted, the positional parameters are
  475.            printed (see PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS below).    The PPPPSSSS3333    prompt is then
  476.            displayed and a line read from the standard input.  If
  477.            the line    consists of a number corresponding to one of
  478.            the displayed words, then the value of _n_a_m_e is set to
  479.            that word.  If the line is empty, the words and prompt
  480.            are displayed again.  If    EOF is read, the command
  481.            completes.  Any other value read    causes _n_a_m_e to be set
  482.            to null.     The line read is saved    in the variable    RRRREEEEPPPPLLLLYYYY.
  483.            The _l_i_s_t    is executed after each selection until a bbbbrrrreeeeaaaakkkk
  484.            or rrrreeeettttuuuurrrrnnnn command is executed.  The exit    status of
  485.            sssseeeelllleeeecccctttt is the exit status of the    last command executed
  486.            in _l_i_s_t,    or zero    if no commands were executed.
  487.  
  488.       ccccaaaasssseeee _w_o_r_d iiiinnnn [ ( _p_a_t_t_e_r_n [ |||| _p_a_t_t_e_r_n ] ... ) _l_i_s_t ;; ] ... eeeessssaaaacccc
  489.            A ccccaaaasssseeee command first expands _w_o_r_d, and tries to match
  490.            it against each _p_a_t_t_e_r_n in turn,    using the same
  491.            matching    rules as for pathname expansion    (see PPPPaaaatttthhhhnnnnaaaammmmeeee
  492.            EEEExxxxppppaaaannnnssssiiiioooonnnn below).  When a match is found, the
  493.            corresponding _l_i_s_t is executed.    After the first    match,
  494.            no subsequent matches are attempted.  The exit status
  495.            is zero if no pattern matches.  Otherwise, it is    the
  496.            exit status of the last command executed    in _l_i_s_t.
  497.  
  498.      ffffiiii
  499.       iiiiffff _l_i_s_t; tttthhhheeeennnn    _l_i_s_t; [    eeeelllliiiiffff _l_i_s_t; tttthhhheeeennnn    _l_i_s_t; ]    ... [ eeeellllsssseeee _l_i_s_t; ]
  500.            The iiiiffff _l_i_s_t is executed.     If its    exit status is zero,
  501.            the tttthhhheeeennnn    _l_i_s_t is    executed.  Otherwise, each eeeelllliiiiffff    _l_i_s_t
  502.            is executed in turn, and    if its exit status is zero,
  503.            the corresponding tttthhhheeeennnn _l_i_s_t is executed and the command
  504.            completes.  Otherwise, the eeeellllsssseeee _l_i_s_t is executed, if
  505.            present.     The exit status is the    exit status of the
  506.            last command executed, or zero if no condition tested
  507.            true.
  508.  
  509.       wwwwhhhhiiiilllleeee    _l_i_s_t; ddddoooo _l_i_s_t; ddddoooonnnneeee
  510.       uuuunnnnttttiiiillll    _l_i_s_t; ddddoooo _l_i_s_t; ddddoooonnnneeee
  511.            The wwwwhhhhiiiilllleeee command continuously executes the ddddoooo _l_i_s_t as
  512.            long as the last    command    in _l_i_s_t    returns    an exit    status
  513.            of zero.     The uuuunnnnttttiiiillll command is identical    to the wwwwhhhhiiiilllleeee
  514.            command,    except that the    test is    negated; the ddddoooo    _l_i_s_t
  515.            is executed as long as the last command in _l_i_s_t returns
  516.            a non-zero exit status.    The exit status    of the wwwwhhhhiiiilllleeee
  517.            and uuuunnnnttttiiiillll commands is the exit status of    the last ddddoooo
  518.            _l_i_s_t command executed, or zero if none was executed.
  519.  
  520.       [ ffffuuuunnnnccccttttiiiioooonnnn ] _n_a_m_e () { _l_i_s_t; }
  521.            This defines a function named _n_a_m_e.  The    _b_o_d_y of    the
  522.  
  523.  
  524.  
  525.      Page 8                         (printed 3/25/99)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  533.  
  534.  
  535.  
  536.            function    is the _l_i_s_t of commands    between    { and }.  This
  537.            list is executed    whenever _n_a_m_e is specified as the name
  538.            of a simple command.  The exit status of    a function is
  539.            the exit    status of the last command executed in the
  540.            body.  (See FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS below.)
  541.  
  542.      CCCCOOOOMMMMMMMMEEEENNNNTTTTSSSS
  543.       In a non-interactive shell, or an interactive    shell in which
  544.       the iiiinnnntttteeeerrrraaaaccccttttiiiivvvveeee____ccccoooommmmmmmmeeeennnnttttssss option to the sssshhhhoooopppptttt builtin is
  545.       enabled (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below), a    word beginning
  546.       with #### causes    that word and all remaining characters on that
  547.       line to be ignored.  An interactive shell without the
  548.       iiiinnnntttteeeerrrraaaaccccttttiiiivvvveeee____ccccoooommmmmmmmeeeennnnttttssss option enabled does not allow comments.
  549.       The iiiinnnntttteeeerrrraaaaccccttttiiiivvvveeee____ccccoooommmmmmmmeeeennnnttttssss option is on    by default in
  550.       interactive shells.
  551.  
  552.      QQQQUUUUOOOOTTTTIIIINNNNGGGG
  553.       _Q_u_o_t_i_n_g is used to remove the    special    meaning    of certain
  554.       characters or    words to the shell.  Quoting can be used to
  555.       disable special treatment for    special    characters, to prevent
  556.       reserved words from being recognized as such,    and to prevent
  557.       parameter expansion.
  558.  
  559.       Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under    DDDDEEEEFFFFIIIINNNNIIIITTTTIIIIOOOONNNNSSSS
  560.       has special meaning to the shell and must be quoted if they
  561.       are to represent themselves.    There are three    quoting
  562.       mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single quotes, and double
  563.       quotes.
  564.  
  565.       A non-quoted backslash (\\\\) is    the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r.  It
  566.       preserves the    literal    value of the next character that
  567.       follows, with    the exception of <newline>.  If    a \\\\<newline>
  568.       pair appears,    and the    backslash is not itself    quoted,    the
  569.       \\\\<newline> is    treated    as a line continuation (that is, it is
  570.       removed from the input stream    and effectively    ignored).
  571.  
  572.       Enclosing characters in single quotes    preserves the literal
  573.       value    of each    character within the quotes.  A    single quote
  574.       may not occur    between    single quotes, even when preceded by a
  575.       backslash.
  576.  
  577.       Enclosing characters in double quotes    preserves the literal
  578.       value    of all characters within the quotes, with the
  579.       exception of $$$$, ````, and \\\\.  The characters $$$$ and ```` retain
  580.       their    special    meaning    within double quotes.  The backslash
  581.       retains its special meaning only when    followed by one    of the
  582.       following characters:     $$$$, ````, """", \\\\, or    <<<<nnnneeeewwwwlllliiiinnnneeee>>>>.  A double
  583.       quote    may be quoted within double quotes by preceding    it
  584.       with a backslash.
  585.  
  586.       The special parameters **** and @@@@ have special meaning when in
  587.       double quotes    (see PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS    below).
  588.  
  589.  
  590.  
  591.      Page 9                         (printed 3/25/99)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  599.  
  600.  
  601.  
  602.       Words    of the form $$$$'_s_t_r_i_n_g' are treated specially.  The word
  603.       expands to _s_t_r_i_n_g, with backslash-escaped characters
  604.       replaced as specifed by the ANSI C standard.    Backslash
  605.       escape sequences, if present,    are decoded as follows:
  606.            \\\\aaaa   alert (bell)
  607.            \\\\bbbb   backspace
  608.            \\\\eeee   an escape character
  609.            \\\\ffff   form feed
  610.            \\\\nnnn   new    line
  611.            \\\\rrrr   carriage return
  612.            \\\\tttt   horizontal tab
  613.            \\\\vvvv   vertical tab
  614.            \\\\\\\\   backslash
  615.            \\\\_n_n_n the    character whose    ASCII code is the octal    value
  616.             _n_n_n    (one to    three digits)
  617.            \\\\xxxx_n_n_n
  618.             the    character whose    ASCII code is the hexadecimal
  619.             value _n_n_n (one to three digits)
  620.  
  621.       The translated result    is single-quoted, as if    the dollar
  622.       sign had not been present.
  623.  
  624.       A double-quoted string preceded by a dollar sign ($$$$) will
  625.       cause    the string to be translated according to the current
  626.       locale.  If the current locale is CCCC or PPPPOOOOSSSSIIIIXXXX,    the dollar
  627.       sign is ignored.  If the string is translated    and replaced,
  628.       the replacement is double-quoted.
  629.  
  630.      PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  631.       A _p_a_r_a_m_e_t_e_r is an entity that    stores values.    It can be a
  632.       _n_a_m_e,    a number, or one of the    special    characters listed
  633.       below    under SSSSppppeeeecccciiiiaaaallll PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss.  For the shell's purposes, a
  634.       _v_a_r_i_a_b_l_e is a    parameter denoted by a _n_a_m_e.
  635.  
  636.       A parameter is set if    it has been assigned a value.  The
  637.       null string is a valid value.     Once a    variable is set, it
  638.       may be unset only by using the uuuunnnnsssseeeetttt builtin command (see
  639.       SSSSHHHHEEEELLLLLLLL    BBBBUUUUIIIILLLLTTTTIIIINNNN    CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).
  640.  
  641.       A _v_a_r_i_a_b_l_e may be assigned to    by a statement of the form
  642.  
  643.            _n_a_m_e=[_v_a_l_u_e]
  644.  
  645.       If _v_a_l_u_e is not given, the variable is assigned the null
  646.       string.  All _v_a_l_u_e_s undergo tilde expansion, parameter and
  647.       variable expansion, string expansion,    command    substitution,
  648.       arithmetic expansion,    and quote removal (see EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
  649.       below).  If the variable has its iiiinnnntttteeeeggggeeeerrrr attribute set (see
  650.       ddddeeeeccccllllaaaarrrreeee below    in SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS) then    _v_a_l_u_e is
  651.       subject to arithmetic    expansion even if the $((...))
  652.       expansion is not used    (see AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc    EEEExxxxppppaaaannnnssssiiiioooonnnn below).
  653.       Word splitting is not    performed, with    the exception of """"$$$$@@@@""""
  654.  
  655.  
  656.  
  657.      Page 10                         (printed 3/25/99)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  665.  
  666.  
  667.  
  668.       as explained below under SSSSppppeeeecccciiiiaaaallll PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss.    Pathname
  669.       expansion is not performed.
  670.  
  671.     PPPPoooossssiiiittttiiiioooonnnnaaaallll PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss
  672.       A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter    denoted    by one or more
  673.       digits, other    than the single    digit 0.  Positional
  674.       parameters are assigned from the shell's arguments when it
  675.       is invoked, and may be reassigned using the sssseeeetttt builtin
  676.       command.  Positional parameters may not be assigned to with
  677.       assignment statements.  The positional parameters are
  678.       temporarily replaced when a shell function is    executed (see
  679.       FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS below).
  680.  
  681.       When a positional parameter consisting of more than a    single
  682.       digit    is expanded, it    must be    enclosed in braces (see
  683.       EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN below).
  684.  
  685.     SSSSppppeeeecccciiiiaaaallll    PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss
  686.       The shell treats several parameters specially.  These
  687.       parameters may only be referenced; assignment    to them    is not
  688.       allowed.
  689.       ****    Expands to the positional parameters, starting from
  690.            one.  When the expansion    occurs within double quotes,
  691.            it expands to a single word with    the value of each
  692.            parameter separated by the first    character of the IIIIFFFFSSSS
  693.            special variable.  That is, "$$$$****"    is equivalent to
  694.            "$$$$1111_c$$$$2222_c............", where _c is the first character of the
  695.            value of    the IIIIFFFFSSSS    variable.  If IIIIFFFFSSSS is unset, the
  696.            parameters are separated    by spaces.  If IIIIFFFFSSSS is null,
  697.            the parameters are joined without intervening
  698.            separators.
  699.       @@@@    Expands to the positional parameters, starting from
  700.            one.  When the expansion    occurs within double quotes,
  701.            each parameter expands to a separate word.  That    is,
  702.            "$$$$@@@@" is equivalent to "$$$$1111" "$$$$2222" ...  When there are no
  703.            positional parameters, "$$$$@@@@" and $$$$@@@@ expand to nothing
  704.            (i.e., they are removed).
  705.       ####    Expands to the number of    positional parameters in
  706.            decimal.
  707.       ????    Expands to the status of    the most recently executed
  708.            foreground pipeline.
  709.       ----    Expands to the current option flags as specified    upon
  710.            invocation, by the sssseeeetttt builtin command, or those    set by
  711.            the shell itself    (such as the ----iiii    option).
  712.       $$$$    Expands to the process ID of the    shell.    In a ()
  713.            subshell, it expands to the process ID of the current
  714.            shell, not the subshell.
  715.       !!!!    Expands to the process ID of the    most recently executed
  716.            background (asynchronous) command.
  717.       0000    Expands to the name of the shell    or shell script.  This
  718.            is set at shell initialization.    If bbbbaaaasssshhhh    is invoked
  719.            with a file of commands,    $$$$0000 is set to the name of that
  720.  
  721.  
  722.  
  723.      Page 11                         (printed 3/25/99)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  731.  
  732.  
  733.  
  734.            file.  If bbbbaaaasssshhhh is started with the ----cccc option, then $$$$0000
  735.            is set to the first argument after the string to    be
  736.            executed, if one    is present.  Otherwise,    it is set to
  737.            the file    name used to invoke bbbbaaaasssshhhh, as given by argument
  738.            zero.
  739.       ____    At shell    startup, set to    the absolute file name of the
  740.            shell or    shell script being executed as passed in the
  741.            argument    list.  Subsequently, expands to    the last
  742.            argument    to the previous    command, after expansion.
  743.            Also set    to the full file name of each command executed
  744.            and placed in the environment exported to that command.
  745.            When checking mail, this    parameter holds    the name of
  746.            the mail    file currently being checked.
  747.  
  748.     SSSShhhheeeellllllll VVVVaaaarrrriiiiaaaabbbblllleeeessss
  749.       The following    variables are set by the shell:
  750.  
  751.       PPPPPPPPIIIIDDDD The process ID of the shell's parent.  This variable is
  752.            readonly.
  753.       PPPPWWWWDDDD  The current working directory as    set by the ccccdddd command.
  754.       OOOOLLLLDDDDPPPPWWWWDDDD
  755.            The previous working directory as set by    the ccccdddd
  756.            command.
  757.       RRRREEEEPPPPLLLLYYYY
  758.            Set to the line of input    read by    the rrrreeeeaaaadddd builtin
  759.            command when no arguments are supplied.
  760.       UUUUIIIIDDDD  Expands to the user ID of the current user, initialized
  761.            at shell    startup.  This variable    is readonly.
  762.       EEEEUUUUIIIIDDDD Expands to the effective    user ID    of the current user,
  763.            initialized at shell startup.  This variable is
  764.            readonly.
  765.       GGGGRRRROOOOUUUUPPPPSSSS
  766.            An array    variable containing the    list of    groups of
  767.            which the current user is a member.  This variable is
  768.            readonly.
  769.       BBBBAAAASSSSHHHH Expands to the full file    name used to invoke this
  770.            instance    of bbbbaaaasssshhhh.
  771.       BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIIOOOONNNN
  772.            Expands to a string describing the version of this
  773.            instance    of bbbbaaaasssshhhh.
  774.       BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO
  775.            A readonly array    variable whose members hold version
  776.            information for this instance of    bbbbaaaasssshhhh.  The values
  777.            assigned    to the array members are as follows:
  778.  
  779.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[0]]]]           The major version number    (the
  780.                        _r_e_l_e_a_s_e).
  781.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[1]]]]           The minor version number    (the
  782.                        _v_e_r_s_i_o_n).
  783.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[2]]]]           The patch level.
  784.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[3]]]]           The build version.
  785.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[4]]]]           The release status (e.g.,
  786.                        _b_e_t_a_1).
  787.  
  788.  
  789.      Page 12                         (printed 3/25/99)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  797.  
  798.  
  799.  
  800.            BBBBAAAASSSSHHHH____VVVVEEEERRRRSSSSIIIINNNNFFFFOOOO[[[[5]]]]           The value of MMMMAAAACCCCHHHHTTTTYYYYPPPPEEEE.
  801.  
  802.       SSSSHHHHLLLLVVVVLLLL
  803.            Incremented by one each time an instance    of bbbbaaaasssshhhh    is
  804.            started.
  805.  
  806.       RRRRAAAANNNNDDDDOOOOMMMM
  807.            Each time this parameter    is referenced, a random
  808.            integer between 0 and 32767 is generated.  The sequence
  809.            of random numbers may be    initialized by assigning a
  810.            value to    RRRRAAAANNNNDDDDOOOOMMMM.     If RRRRAAAANNNNDDDDOOOOMMMM is unset, it    loses its
  811.            special properties, even    if it is subsequently reset.
  812.  
  813.       SSSSEEEECCCCOOOONNNNDDDDSSSS
  814.            Each time this parameter    is referenced, the number of
  815.            seconds since shell invocation is returned.  If a value
  816.            is assigned to SSSSEEEECCCCOOOONNNNDDDDSSSS, the value returned upon
  817.            subsequent references is    the number of seconds since
  818.            the assignment plus the value assigned.    If SSSSEEEECCCCOOOONNNNDDDDSSSS is
  819.            unset, it loses its special properties, even if it is
  820.            subsequently reset.
  821.  
  822.       LLLLIIIINNNNEEEENNNNOOOO
  823.            Each time this parameter    is referenced, the shell
  824.            substitutes a decimal number representing the current
  825.            sequential line number (starting    with 1)    within a
  826.            script or function.  When not in    a script or function,
  827.            the value substituted is    not guaranteed to be
  828.            meaningful.  If LLLLIIIINNNNEEEENNNNOOOO is unset,    it loses its special
  829.            properties, even    if it is subsequently reset.
  830.  
  831.       HHHHIIIISSSSTTTTCCCCMMMMDDDD
  832.            The history number, or index in the history list, of
  833.            the current command.  If    HHHHIIIISSSSTTTTCCCCMMMMDDDD    is unset, it loses its
  834.            special properties, even    if it is subsequently reset.
  835.  
  836.       DDDDIIIIRRRRSSSSTTTTAAAACCCCKKKK
  837.            An array    variable (see AAAArrrrrrrraaaayyyyssss below) containing the
  838.            current contents    of the directory stack.     Directories
  839.            appear in the stack in the order    they are displayed by
  840.            the ddddiiiirrrrssss    builtin.  Assigning to members of this array
  841.            variable    may be used to modify directories already in
  842.            the stack, but the ppppuuuusssshhhhdddd    and ppppooooppppdddd builtins must be used
  843.            to add and remove directories.  Assignment to this
  844.            variable    will not change    the current directory.    If
  845.            DDDDIIIIRRRRSSSSTTTTAAAACCCCKKKK    is unset, it loses its special properties,
  846.            even if it is subsequently reset.
  847.  
  848.       PPPPIIIIPPPPEEEESSSSTTTTAAAATTTTUUUUSSSS
  849.            An array    variable (see AAAArrrrrrrraaaayyyyssss below) containing a list
  850.            of exit status values from the processes    in the most-
  851.            recently-executed foreground pipeline (which may
  852.  
  853.  
  854.  
  855.      Page 13                         (printed 3/25/99)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  863.  
  864.  
  865.  
  866.            contain only a single command).
  867.  
  868.       OOOOPPPPTTTTAAAARRRRGGGG
  869.            The value of the    last option argument processed by the
  870.            ggggeeeettttooooppppttttssss builtin command (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  871.            below).
  872.  
  873.       OOOOPPPPTTTTIIIINNNNDDDD
  874.            The index of the    next argument to be processed by the
  875.            ggggeeeettttooooppppttttssss builtin command (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  876.            below).
  877.  
  878.       HHHHOOOOSSSSTTTTNNNNAAAAMMMMEEEE
  879.            Automatically set to the    name of    the current host.
  880.  
  881.       HHHHOOOOSSSSTTTTTTTTYYYYPPPPEEEE
  882.            Automatically set to a string that uniquely describes
  883.            the type    of machine on which bbbbaaaasssshhhh is executing.    The
  884.            default is system-dependent.
  885.  
  886.       OOOOSSSSTTTTYYYYPPPPEEEE
  887.            Automatically set to a string that describes the
  888.            operating system    on which bbbbaaaasssshhhh is executing.  The
  889.            default is system-dependent.
  890.  
  891.       MMMMAAAACCCCHHHHTTTTYYYYPPPPEEEE
  892.            Automatically set to a string that fully    describes the
  893.            system type on which bbbbaaaasssshhhh is executing, in the standard
  894.            GNU _c_p_u-_c_o_m_p_a_n_y-_s_y_s_t_e_m format.  The default is system-
  895.            dependent.
  896.  
  897.       SSSSHHHHEEEELLLLLLLLOOOOPPPPTTTTSSSS
  898.            A colon-separated list of enabled shell options.     Each
  899.            word in the list    is a valid argument for    the ----oooo option
  900.            to the sssseeeetttt builtin command (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  901.            below).    The options appearing in SSSSHHHHEEEELLLLLLLLOOOOPPPPTTTTSSSS are those
  902.            reported    as _o_n by sssseeeetttt ----oooo.  If this variable is in the
  903.            environment when    bbbbaaaasssshhhh starts up,    each shell option in
  904.            the list    will be    enabled    before reading any startup
  905.            files.  This variable is    read-only.
  906.  
  907.       The following    variables are used by the shell.  In some
  908.       cases, bbbbaaaasssshhhh assigns a    default    value to a variable; these
  909.       cases    are noted below.
  910.  
  911.       IIIIFFFFSSSS  The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word
  912.            splitting after expansion and to    split lines into words
  913.            with the    rrrreeeeaaaadddd builtin command.  The default value is
  914.            ``<space><tab><newline>''.
  915.       PPPPAAAATTTTHHHH The search path for commands.  It is a colon-separated
  916.            list of directories in which the    shell looks for
  917.            commands    (see CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN below).    The default
  918.  
  919.  
  920.  
  921.      Page 14                         (printed 3/25/99)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  929.  
  930.  
  931.  
  932.            path is system-dependent, and is    set by the
  933.            administrator who installs bbbbaaaasssshhhh.     A common value    is
  934.            ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.''.
  935.       HHHHOOOOMMMMEEEE The home    directory of the current user; the default
  936.            argument    for the    ccccdddd builtin command.  The value of this
  937.            variable    is also    used when performing tilde expansion.
  938.       CCCCDDDDPPPPAAAATTTTHHHH
  939.            The search path for the ccccdddd command.  This is a colon-
  940.            separated list of directories in    which the shell    looks
  941.            for destination directories specified by    the ccccdddd
  942.            command.     A sample value    is ``.:~:/usr''.
  943.       BBBBAAAASSSSHHHH____EEEENNNNVVVV
  944.            If this parameter is set    when bbbbaaaasssshhhh is executing a shell
  945.            script, its value is interpreted    as a filename
  946.            containing commands to initialize the shell, as in
  947.            ~/._b_a_s_h_r_c.  The value of    BBBBAAAASSSSHHHH____EEEENNNNVVVV is subjected to
  948.            parameter expansion, command substitution, and
  949.            arithmetic expansion before being interpreted as    a file
  950.            name.  PPPPAAAATTTTHHHH is not used to search for the resultant
  951.            file name.
  952.       MMMMAAAAIIIILLLL If this parameter is set    to a file name and the
  953.            MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH    variable is not    set, bbbbaaaasssshhhh informs the user of
  954.            the arrival of mail in the specified file.
  955.       MMMMAAAAIIIILLLLCCCCHHHHEEEECCCCKKKK
  956.            Specifies how often (in seconds)    bbbbaaaasssshhhh checks for    mail.
  957.            The default is 60 seconds.  When    it is time to check
  958.            for mail, the shell does    so before displaying the
  959.            primary prompt.    If this    variable is unset, the shell
  960.            disables    mail checking.
  961.       MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH
  962.            A colon-separated list of file names to be checked for
  963.            mail. The message to be printed when mail arrives in a
  964.            particular file may be specified    by separating the file
  965.            name from the message with a `?'.  When used in the
  966.            text of the message, $$$$____ expands to the name of the
  967.            current mailfile. Example:
  968.            MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH='/usr/spool/mail/bfox?"You have
  969.            mail":~/shell-mail?"$_ has mail!"'
  970.            BBBBaaaasssshhhh supplies a default value for this variable,    but
  971.            the location of the user    mail files that    it uses    is
  972.            system dependent    (e.g., /usr/spool/mail/$$$$UUUUSSSSEEEERRRR).
  973.       PPPPSSSS1111  The value of this parameter is expanded (see PPPPRRRROOOOMMMMPPPPTTTTIIIINNNNGGGG
  974.            below) and used as the primary prompt string.  The
  975.            default value is    ``\\\\ssss----\\\\vvvv\\\\$$$$ ''.
  976.       PPPPSSSS2222  The value of this parameter is expanded as with PPPPSSSS1111 and
  977.            used as the secondary prompt string.  The default is
  978.            ``>>>> ''.
  979.       PPPPSSSS3333  The value of this parameter is used as the prompt for
  980.            the sssseeeelllleeeecccctttt command (see SSSSHHHHEEEELLLLLLLL GGGGRRRRAAAAMMMMMMMMAAAARRRR above).
  981.       PPPPSSSS4444  The value of this parameter is expanded as with PPPPSSSS1111 and
  982.            the value is printed before each    command    bbbbaaaasssshhhh displays
  983.            during an execution trace.  The first character of PPPPSSSS4444
  984.  
  985.  
  986.  
  987.      Page 15                         (printed 3/25/99)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  995.  
  996.  
  997.  
  998.            is replicated multiple times, as    necessary, to indicate
  999.            multiple    levels of indirection.    The default is ``++++ ''.
  1000.       TTTTIIIIMMMMEEEEFFFFOOOORRRRMMMMAAAATTTT
  1001.            The value of this parameter is used as a    format string
  1002.            specifying how the timing information for pipelines
  1003.            prefixed    with the ttttiiiimmmmeeee reserved word should be
  1004.            displayed.  The %%%% character introduces an escape
  1005.            sequence    that is    expanded to a time value or other
  1006.            information.  The escape    sequences and their meanings
  1007.            are as follows; the braces denote optional portions.
  1008.  
  1009.            %%%%%%%%     A literal %%%%.
  1010.            %%%%[[[[_p]]]][[[[llll]]]]RRRR     The elapsed time in seconds.
  1011.            %%%%[[[[_p]]]][[[[llll]]]]UUUU     The number of CPU seconds spent in user mode.
  1012.            %%%%[[[[_p]]]][[[[llll]]]]SSSS     The number of CPU seconds spent in system
  1013.              mode.
  1014.            %%%%PPPP     The CPU percentage, computed as (%U + %S) /
  1015.              %R.
  1016.  
  1017.            The optional _p is a digit specifying the    _p_r_e_c_i_s_i_o_n, the
  1018.            number of fractional digits after a decimal point.  A
  1019.            value of    0 causes no decimal point or fraction to be
  1020.            output.    At most    three places after the decimal point
  1021.            may be specified; values    of _p greater than 3 are
  1022.            changed to 3.  If _p is not specified, the value 3 is
  1023.            used.
  1024.  
  1025.            The optional llll specifies    a longer format, including
  1026.            minutes,    of the form _M_Mm_S_S._F_Fs.    The value of _p
  1027.            determines whether or not the fraction is included.
  1028.  
  1029.            If this variable    is not set, bbbbaaaasssshhhh acts as if it had the
  1030.            value $$$$''''\\\\nnnnrrrreeeeaaaallll\\\\tttt%%%%3333llllRRRR\\\\nnnnuuuusssseeeerrrr\\\\tttt%%%%3333llllUUUU\\\\nnnnssssyyyyssss%%%%3333llllSSSS''''.  If the
  1031.            value is    null, no timing    information is displayed.  A
  1032.            trailing    newline    is added when the format string    is
  1033.            displayed.
  1034.  
  1035.       HHHHIIIISSSSTTTTSSSSIIIIZZZZEEEE
  1036.            The number of commands to remember in the command
  1037.            history (see HHHHIIIISSSSTTTTOOOORRRRYYYY below).  The default value is 500.
  1038.  
  1039.       HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
  1040.            The name    of the file in which command history is    saved
  1041.            (see HHHHIIIISSSSTTTTOOOORRRRYYYY below).  The default value is
  1042.            ~/._b_a_s_h__h_i_s_t_o_r_y.     If unset, the command history is not
  1043.            saved when an interactive shell exits.
  1044.  
  1045.       HHHHIIIISSSSTTTTFFFFIIIILLLLEEEESSSSIIIIZZZZEEEE
  1046.            The maximum number of lines contained in    the history
  1047.            file.  When this    variable is assigned a value, the
  1048.            history file is truncated, if necessary,    to contain no
  1049.            more than that number of    lines.    The default value is
  1050.            500.  The history file is also truncated    to this    size
  1051.  
  1052.  
  1053.      Page 16                         (printed 3/25/99)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1061.  
  1062.  
  1063.  
  1064.            after writing it    when an    interactive shell exits.
  1065.  
  1066.       OOOOPPPPTTTTEEEERRRRRRRR
  1067.            If set to the value 1, bbbbaaaasssshhhh displays error messages
  1068.            generated by the    ggggeeeettttooooppppttttssss    builtin    command    (see SSSSHHHHEEEELLLLLLLL
  1069.            BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS    below).     OOOOPPPPTTTTEEEERRRRRRRR    is initialized to 1
  1070.            each time the shell is invoked or a shell script    is
  1071.            executed.
  1072.  
  1073.       LLLLAAAANNNNGGGG Used to determine the locale category for any category
  1074.            not specifically    selected with a    variable starting with
  1075.            LLLLCCCC____.
  1076.  
  1077.       LLLLCCCC____AAAALLLLLLLL
  1078.            This variable overrides the value of LLLLAAAANNNNGGGG and any other
  1079.            LLLLCCCC____ variable specifying a locale    category.
  1080.  
  1081.       LLLLCCCC____CCCCOOOOLLLLLLLLAAAATTTTEEEE
  1082.            This variable determines    the collation order used when
  1083.            sorting the results of pathname expansion, and
  1084.            determines the behavior of range    expressions,
  1085.            equivalence classes, and    collating sequences within
  1086.            pathname    expansion and pattern matching.
  1087.  
  1088.       LLLLCCCC____CCCCTTTTYYYYPPPPEEEE
  1089.            This variable determines    the interpretation of
  1090.            characters and the behavior of character    classes    within
  1091.            pathname    expansion and pattern matching.
  1092.  
  1093.       LLLLCCCC____MMMMEEEESSSSSSSSAAAAGGGGEEEESSSS
  1094.            This variable determines    the locale used    to translate
  1095.            double-quoted strings preceded by a $$$$.
  1096.  
  1097.       PPPPRRRROOOOMMMMPPPPTTTT____CCCCOOOOMMMMMMMMAAAANNNNDDDD
  1098.            If set, the value is executed as    a command prior    to
  1099.            issuing each primary prompt.
  1100.  
  1101.       IIIIGGGGNNNNOOOORRRREEEEEEEEOOOOFFFF
  1102.            Controls    the action of an interactive shell on receipt
  1103.            of an EEEEOOOOFFFF character as the sole input.  If set, the
  1104.            value is    the number of consecutive EEEEOOOOFFFF characters which
  1105.            must be typed as    the first characters on    an input line
  1106.            before bbbbaaaasssshhhh exits.  If the variable exists but does not
  1107.            have a numeric value, or    has no value, the default
  1108.            value is    10.  If    it does    not exist, EEEEOOOOFFFF signifies the
  1109.            end of input to the shell.
  1110.  
  1111.       TTTTMMMMOOOOUUUUTTTT
  1112.            If set to a value greater than zero, the    value is
  1113.            interpreted as the number of seconds to wait for    input
  1114.            after issuing the primary prompt.  BBBBaaaasssshhhh terminates
  1115.            after waiting for that number of    seconds    if input does
  1116.  
  1117.  
  1118.  
  1119.      Page 17                         (printed 3/25/99)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1127.  
  1128.  
  1129.  
  1130.            not arrive.
  1131.  
  1132.       FFFFCCCCEEEEDDDDIIIITTTT
  1133.            The default editor for the ffffcccc builtin command.
  1134.  
  1135.       FFFFIIIIGGGGNNNNOOOORRRREEEE
  1136.            A colon-separated list of suffixes to ignore when
  1137.            performing filename completion (see RRRREEEEAAAADDDDLLLLIIIINNNNEEEE below).  A
  1138.            filename    whose suffix matches one of the    entries    in
  1139.            FFFFIIIIGGGGNNNNOOOORRRREEEE is excluded from    the list of matched filenames.
  1140.            A sample    value is ``.o:~''.
  1141.  
  1142.       GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE
  1143.            A colon-separated list of patterns defining the set of
  1144.            filenames to be ignored by pathname expansion.  If a
  1145.            filename    matched    by a pathname expansion    pattern    also
  1146.            matches one of the patterns in GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE, it is
  1147.            removed from the    list of    matches.
  1148.  
  1149.       IIIINNNNPPPPUUUUTTTTRRRRCCCC
  1150.            The filename for    the rrrreeeeaaaaddddlllliiiinnnneeee startup file, overriding
  1151.            the default of ~/._i_n_p_u_t_r_c (see RRRREEEEAAAADDDDLLLLIIIINNNNEEEE below).
  1152.  
  1153.       HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL
  1154.            If set to a value of _i_g_n_o_r_e_s_p_a_c_e, lines which begin
  1155.            with a ssssppppaaaacccceeee character are not entered on the history
  1156.            list.  If set to    a value    of _i_g_n_o_r_e_d_u_p_s, lines matching
  1157.            the last    history    line are not entered.  A value of
  1158.            _i_g_n_o_r_e_b_o_t_h combines the two options.  If    unset, or if
  1159.            set to any other    value than those above,    all lines read
  1160.            by the parser are saved on the history list, subject to
  1161.            the value of HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE.     This variable's function is
  1162.            superseded by HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE.  The second and subsequent
  1163.            lines of    a multi-line compound command are not tested,
  1164.            and are added to    the history regardless of the value of
  1165.            HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL.
  1166.  
  1167.       HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE
  1168.            A colon-separated list of patterns used to decide which
  1169.            command lines should be saved on    the history list.
  1170.            Each pattern is anchored    at the beginning of the    line
  1171.            and must    fully specify the line (no implicit `****'    is
  1172.            appended).  Each    pattern    is tested against the line
  1173.            after the checks    specified by HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL are applied.
  1174.            In addition to the normal shell pattern matching
  1175.            characters, `&&&&' matches the previous history line.  `&&&&'
  1176.            may be escaped using a backslash.  The backslash    is
  1177.            removed before attempting a match.  The second and
  1178.            subsequent lines    of a multi-line    compound command are
  1179.            not tested, and are added to the    history    regardless of
  1180.            the value of HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.      Page 18                         (printed 3/25/99)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1193.  
  1194.  
  1195.  
  1196.       hhhhiiiissssttttcccchhhhaaaarrrrssss
  1197.            The two or three    characters which control history
  1198.            expansion and tokenization (see HHHHIIIISSSSTTTTOOOORRRRYYYY EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
  1199.            below).    The first character is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n
  1200.            _c_h_a_r_a_c_t_e_r, the character    which signals the start    of a
  1201.            history expansion, normally `!!!!'.     The second character
  1202.            is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as
  1203.            shorthand for re-running    the previous command entered,
  1204.            substituting one    string for another in the command.
  1205.            The default is `^^^^'.  The    optional third character is
  1206.            the character which indicates that the remainder    of the
  1207.            line is a comment when found as the first character of
  1208.            a word, normally    `####'.  The history comment character
  1209.            causes history substitution to be skipped for the
  1210.            remaining words on the line.  It    does not necessarily
  1211.            cause the shell parser to treat the rest    of the line as
  1212.            a comment.
  1213.  
  1214.       HHHHOOOOSSSSTTTTFFFFIIIILLLLEEEE
  1215.            Contains    the name of a file in the same format as
  1216.            /_e_t_c/_h_o_s_t_s that should be read when the shell needs to
  1217.            complete    a hostname.  The file may be changed
  1218.            interactively; the next time hostname completion    is
  1219.            attempted bbbbaaaasssshhhh adds the contents    of the new file    to the
  1220.            already existing    database.
  1221.  
  1222.       aaaauuuuttttoooo____rrrreeeessssuuuummmmeeee
  1223.            This variable controls how the shell interacts with the
  1224.            user and    job control.  If this variable is set, single
  1225.            word simple commands without redirections are treated
  1226.            as candidates for resumption of an existing stopped
  1227.            job.  There is no ambiguity allowed; if there is    more
  1228.            than one    job beginning with the string typed, the job
  1229.            most recently accessed is selected.  The    _n_a_m_e of    a
  1230.            stopped job, in this context, is    the command line used
  1231.            to start    it.  If    set to the value _e_x_a_c_t,    the string
  1232.            supplied    must match the name of a stopped job exactly;
  1233.            if set to _s_u_b_s_t_r_i_n_g, the    string supplied    needs to match
  1234.            a substring of the name of a stopped job.  The
  1235.            _s_u_b_s_t_r_i_n_g value provides    functionality analogous    to the
  1236.            %%%%???? job identifier (see JJJJOOOOBBBB CCCCOOOONNNNTTTTRRRROOOOLLLL below).  If set to
  1237.            any other value,    the supplied string must be a prefix
  1238.            of a stopped job's name;    this provides functionality
  1239.            analogous to the    %%%% job identifier.
  1240.  
  1241.     AAAArrrrrrrraaaayyyyssss
  1242.       BBBBaaaasssshhhh provides    one-dimensional    array variables.  Any variable
  1243.       may be used as an array; the ddddeeeeccccllllaaaarrrreeee builtin will explicitly
  1244.       declare an array.  There is no maximum limit on the size of
  1245.       an array, nor    any requirement    that members be    indexed    or
  1246.       assigned contiguously.  Arrays are indexed using integers
  1247.       and are zero-based.
  1248.  
  1249.  
  1250.  
  1251.      Page 19                         (printed 3/25/99)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1259.  
  1260.  
  1261.  
  1262.       An array is created automatically if any variable is
  1263.       assigned to using the    syntax _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e.  The
  1264.       _s_u_b_s_c_r_i_p_t is treated as an arithmetic    expression that    must
  1265.       evaluate to a    number greater than or equal to    zero.  To
  1266.       explicitly declare an    array, use ddddeeeeccccllllaaaarrrreeee ----aaaa _n_a_m_e (see    SSSSHHHHEEEELLLLLLLL
  1267.       BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).  ddddeeeeccccllllaaaarrrreeee ----aaaa _n_a_m_e[[[[_s_u_b_s_c_r_i_p_t]]]] is also
  1268.       accepted; the    _s_u_b_s_c_r_i_p_t is ignored.  Attributes may be
  1269.       specified for    an array variable using    the ddddeeeeccccllllaaaarrrreeee and
  1270.       rrrreeeeaaaaddddoooonnnnllllyyyy builtins.  Each attribute applies to    all members of
  1271.       an array.
  1272.  
  1273.       Arrays are assigned to using compound    assignments of the
  1274.       form _n_a_m_e=((((value_1 ...    value_n)))), where each _v_a_l_u_e is of    the
  1275.       form [_s_u_b_s_c_r_i_p_t]=_s_t_r_i_n_g.  Only _s_t_r_i_n_g    is required.  If the
  1276.       optional brackets and    subscript are supplied,    that index is
  1277.       assigned to; otherwise the index of the element assigned is
  1278.       the last index assigned to by    the statement plus one.
  1279.       Indexing starts at zero.  This syntax    is also    accepted by
  1280.       the ddddeeeeccccllllaaaarrrreeee builtin.    Individual array elements may be
  1281.       assigned to using the    _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax
  1282.       introduced above.
  1283.  
  1284.       Any element of an array may be referenced using
  1285.       ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.  The braces are required to avoid
  1286.       conflicts with pathname expansion.  If _s_u_b_s_c_r_i_p_t is @@@@    or ****,
  1287.       the word expands to all members of _n_a_m_e.  These subscripts
  1288.       differ only when the word appears within double quotes.  If
  1289.       the word is double-quoted, ${_n_a_m_e[*]}    expands    to a single
  1290.       word with the    value of each array member separated by    the
  1291.       first    character of the IIIIFFFFSSSS special variable, and ${_n_a_m_e[@]}
  1292.       expands each element of _n_a_m_e to a separate word.  When there
  1293.       are no array members,    ${_n_a_m_e[@]} expands to nothing.    This
  1294.       is analogous to the expansion    of the special parameters ****
  1295.       and @@@@    (see SSSSppppeeeecccciiiiaaaallll PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss    above).     ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]}
  1296.       expands to the length    of ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.    If _s_u_b_s_c_r_i_p_t
  1297.       is **** or @@@@, the expansion is the number of elements in    the
  1298.       array.  Referencing an array variable    without    a subscript is
  1299.       equivalent to    referencing element zero.
  1300.  
  1301.       The uuuunnnnsssseeeetttt builtin is used to destroy arrays.    uuuunnnnsssseeeetttt
  1302.       nnnnaaaammmmeeee[_s_u_b_s_c_r_i_p_t] destroys the array element at    index
  1303.       _s_u_b_s_c_r_i_p_t.  uuuunnnnsssseeeetttt _n_a_m_e, where    _n_a_m_e is    an array, or uuuunnnnsssseeeetttt
  1304.       _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is ****    or @@@@, removes the
  1305.       entire array.
  1306.  
  1307.       The ddddeeeeccccllllaaaarrrreeee, llllooooccccaaaallll, and rrrreeeeaaaaddddoooonnnnllllyyyy builtins each accept    a ----aaaa
  1308.       option to specify an array.  The rrrreeeeaaaadddd    builtin    accepts    a ----aaaa
  1309.       option to assign a list of words read    from the standard
  1310.       input    to an array.  The sssseeeetttt and ddddeeeeccccllllaaaarrrreeee builtins display
  1311.       array    values in a way    that allows them to be reused as
  1312.       assignments.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.      Page 20                         (printed 3/25/99)
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1325.  
  1326.  
  1327.  
  1328.      EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
  1329.       Expansion is performed on the    command    line after it has been
  1330.       split    into words.  There are seven kinds of expansion
  1331.       performed:  _b_r_a_c_e _e_x_p_a_n_s_i_o_n, _t_i_l_d_e _e_x_p_a_n_s_i_o_n,    _p_a_r_a_m_e_t_e_r _a_n_d
  1332.       _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_t_i_o_n, _a_r_i_t_h_m_e_t_i_c
  1333.       _e_x_p_a_n_s_i_o_n, _w_o_r_d _s_p_l_i_t_t_i_n_g, and _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n.
  1334.  
  1335.       The order of expansions is: brace expansion, tilde
  1336.       expansion, parameter,    variable and arithmetic    expansion and
  1337.       command substitution (done in    a left-to-right    fashion), word
  1338.       splitting, and pathname expansion.
  1339.  
  1340.       On systems that can support it, there    is an additional
  1341.       expansion available: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n.
  1342.  
  1343.       Only brace expansion,    word splitting,    and pathname expansion
  1344.       can change the number    of words of the    expansion; other
  1345.       expansions expand a single word to a single word.  The only
  1346.       exceptions to    this are the expansions    of "$$$$@@@@"    and
  1347.       "$$$${{{{_n_a_m_e[[[[@@@@]]]]}}}}" as explained above (see PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS).
  1348.  
  1349.     BBBBrrrraaaacccceeee EEEExxxxppppaaaannnnssssiiiioooonnnn
  1350.       _B_r_a_c_e    _e_x_p_a_n_s_i_o_n is a mechanism by which arbitrary strings
  1351.       may be generated.  This mechanism is similar to _p_a_t_h_n_a_m_e
  1352.       _e_x_p_a_n_s_i_o_n, but the filenames generated need not exist.
  1353.       Patterns to be brace expanded    take the form of an optional
  1354.       _p_r_e_a_m_b_l_e, followed by    a series of comma-separated strings
  1355.       between a pair of braces, followed by    an optional
  1356.       _p_o_s_t_s_c_r_i_p_t.  The preamble is prefixed    to each    string
  1357.       contained within the braces, and the postscript is then
  1358.       appended to each resulting string, expanding left to right.
  1359.  
  1360.       Brace    expansions may be nested.  The results of each
  1361.       expanded string are not sorted; left to right    order is
  1362.       preserved.  For example, a{{{{d,c,b}}}}e expands into `ade ace
  1363.       abe'.
  1364.  
  1365.       Brace    expansion is performed before any other    expansions,
  1366.       and any characters special to    other expansions are preserved
  1367.       in the result.  It is    strictly textual.  BBBBaaaasssshhhh    does not apply
  1368.       any syntactic    interpretation to the context of the expansion
  1369.       or the text between the braces.
  1370.  
  1371.       A correctly-formed brace expansion must contain unquoted
  1372.       opening and closing braces, and at least one unquoted    comma.
  1373.       Any incorrectly formed brace expansion is left unchanged.  A
  1374.       {{{{ or ,,,, may be    quoted with a backslash    to prevent its being
  1375.       considered part of a brace expression.
  1376.  
  1377.       This construct is typically used as shorthand    when the
  1378.       common prefix    of the strings to be generated is longer than
  1379.       in the above example:
  1380.  
  1381.  
  1382.  
  1383.      Page 21                         (printed 3/25/99)
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1391.  
  1392.  
  1393.  
  1394.            mkdir /usr/local/src/bash/{old,new,dist,bugs}
  1395.       or
  1396.            chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
  1397.  
  1398.       Brace    expansion introduces a slight incompatibility with
  1399.       historical versions of sssshhhh.  sssshhhh does not treat    opening    or
  1400.       closing braces specially when    they appear as part of a word,
  1401.       and preserves    them in    the output.  BBBBaaaasssshhhh removes braces from
  1402.       words    as a consequence of brace expansion.  For example, a
  1403.       word entered to sssshhhh as    _f_i_l_e{_1,_2} appears identically in the
  1404.       output.  The same word is output as _f_i_l_e_1 _f_i_l_e_2 after
  1405.       expansion by bbbbaaaasssshhhh.  If strict    compatibility with sssshhhh is
  1406.       desired, start bbbbaaaasssshhhh with the ++++BBBB option or disable brace
  1407.       expansion with the ++++BBBB    option to the sssseeeetttt command (see SSSSHHHHEEEELLLLLLLL
  1408.       BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).
  1409.  
  1410.     TTTTiiiillllddddeeee EEEExxxxppppaaaannnnssssiiiioooonnnn
  1411.       If a word begins with    an unquoted tilde character (`~~~~'), all
  1412.       of the characters preceding the first    unquoted slash (or all
  1413.       characters, if there is no unquoted slash) are considered a
  1414.       _t_i_l_d_e-_p_r_e_f_i_x.     If none of the    characters in the tilde-prefix
  1415.       are quoted, the characters in    the tilde-prefix following the
  1416.       tilde    are treated as a possible _l_o_g_i_n    _n_a_m_e.  If this login
  1417.       name is the null string, the tilde is    replaced with the
  1418.       value    of the shell parameter HHHHOOOOMMMMEEEE.  If HHHHOOOOMMMMEEEE is unset,    the
  1419.       home directory of the    user executing the shell is
  1420.       substituted instead.    Otherwise, the tilde-prefix is
  1421.       replaced with    the home directory associated with the
  1422.       specified login name.
  1423.  
  1424.       If the tilde-prefix is a `~+', the value of the shell
  1425.       variable PPPPWWWWDDDD replaces    the tilde-prefix.  If the tilde-prefix
  1426.       is a `~-', the value of the shell variable OOOOLLLLDDDDPPPPWWWWDDDD, if    it is
  1427.       set, is substituted.    If the characters following the    tilde
  1428.       in the tilde-prefix consist of a number _N, optionally
  1429.       prefixed by a    `+' or a `-', the tilde-prefix is replaced
  1430.       with the corresponding element from the directory stack, as
  1431.       it would be displayed    by the ddddiiiirrrrssss builtin invoked with the
  1432.       tilde-prefix as an argument.    If the characters following
  1433.       the tilde in the tilde-prefix    consist    of a number without a
  1434.       leading `+' or `-', `+' is assumed.
  1435.  
  1436.       If the login name is invalid,    or the tilde expansion fails,
  1437.       the word is unchanged.
  1438.  
  1439.       Each variable    assignment is checked for unquoted tilde-
  1440.       prefixes immediately following a :::: or    ====.  In these cases,
  1441.       tilde    expansion is also performed.  Consequently, one    may
  1442.       use file names with tildes in    assignments to PPPPAAAATTTTHHHH, MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH,
  1443.       and CCCCDDDDPPPPAAAATTTTHHHH, and the shell assigns the    expanded value.
  1444.  
  1445.     PPPPaaaarrrraaaammmmeeeetttteeeerrrr EEEExxxxppppaaaannnnssssiiiioooonnnn
  1446.  
  1447.  
  1448.  
  1449.      PPPPaaaaggggeeee 22222222                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1457.  
  1458.  
  1459.  
  1460.       The `$$$$' character introduces parameter expansion, command
  1461.       substitution,    or arithmetic expansion.  The parameter    name
  1462.       or symbol to be expanded may be enclosed in braces, which
  1463.       are optional but serve to protect the    variable to be
  1464.       expanded from    characters immediately following it which
  1465.       could    be interpreted as part of the name.
  1466.  
  1467.       When braces are used,    the matching ending brace is the first
  1468.       `}}}}' not escaped by a backslash or within a quoted string,
  1469.       and not within an embedded arithmetic    expansion, command
  1470.       substitution,    or paramter expansion.
  1471.  
  1472.       ${_p_a_r_a_m_e_t_e_r}
  1473.            The value of _p_a_r_a_m_e_t_e_r is substituted.  The braces are
  1474.            required    when _p_a_r_a_m_e_t_e_r is a positional parameter with
  1475.            more than one digit, or when _p_a_r_a_m_e_t_e_r is followed by a
  1476.            character which is not to be interpreted    as part    of its
  1477.            name.
  1478.  
  1479.       If the first character of _p_a_r_a_m_e_t_e_r is an exclamation    point,
  1480.       a level of variable indirection is introduced.  BBBBaaaasssshhhh uses
  1481.       the value of the variable formed from    the rest of _p_a_r_a_m_e_t_e_r
  1482.       as the name of the variable; this variable is    then expanded
  1483.       and that value used in the rest of the substitution, rather
  1484.       than the value of _p_a_r_a_m_e_t_e_r itself.  This is known as
  1485.       _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n.
  1486.  
  1487.       In each of the cases below, _w_o_r_d is subject to tilde
  1488.       expansion, parameter expansion, command substitution,    and
  1489.       arithmetic expansion.     When not performing substring
  1490.       expansion, bbbbaaaasssshhhh tests    for a parameter    that is    unset or null;
  1491.       omitting the colon results in    a test only for    a parameter
  1492.       that is unset.
  1493.  
  1494.       ${_p_a_r_a_m_e_t_e_r::::----_w_o_r_d}
  1495.            UUUUsssseeee DDDDeeeeffffaaaauuuulllltttt VVVVaaaalllluuuueeeessss.  If _p_a_r_a_m_e_t_e_r is unset or null, the
  1496.            expansion of _w_o_r_d is substituted.  Otherwise, the value
  1497.            of _p_a_r_a_m_e_t_e_r is substituted.
  1498.       ${_p_a_r_a_m_e_t_e_r::::====_w_o_r_d}
  1499.            AAAAssssssssiiiiggggnnnn DDDDeeeeffffaaaauuuulllltttt VVVVaaaalllluuuueeeessss.  If _p_a_r_a_m_e_t_e_r is unset or    null,
  1500.            the expansion of    _w_o_r_d is    assigned to _p_a_r_a_m_e_t_e_r.    The
  1501.            value of    _p_a_r_a_m_e_t_e_r is then substituted.    Positional
  1502.            parameters and special parameters may not be assigned
  1503.            to in this way.
  1504.       ${_p_a_r_a_m_e_t_e_r::::????_w_o_r_d}
  1505.            DDDDiiiissssppppllllaaaayyyy EEEErrrrrrrroooorrrr iiiiffff    NNNNuuuullllllll oooorrrr    UUUUnnnnsssseeeetttt.    If _p_a_r_a_m_e_t_e_r is    null
  1506.            or unset, the expansion of _w_o_r_d (or a message to    that
  1507.            effect if _w_o_r_d is not present) is written to the
  1508.            standard    error and the shell, if    it is not interactive,
  1509.            exits.  Otherwise, the value of _p_a_r_a_m_e_t_e_r is
  1510.            substituted.
  1511.       ${_p_a_r_a_m_e_t_e_r::::++++_w_o_r_d}
  1512.  
  1513.  
  1514.  
  1515.      Page 23                         (printed 3/25/99)
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1523.  
  1524.  
  1525.  
  1526.            UUUUsssseeee AAAAlllltttteeeerrrrnnnnaaaatttteeee VVVVaaaalllluuuueeee.  If    _p_a_r_a_m_e_t_e_r is null or unset,
  1527.            nothing is substituted, otherwise the expansion of _w_o_r_d
  1528.            is substituted.
  1529.       ${_p_a_r_a_m_e_t_e_r::::_o_f_f_s_e_t}
  1530.       ${_p_a_r_a_m_e_t_e_r::::_o_f_f_s_e_t::::_l_e_n_g_t_h}
  1531.            SSSSuuuubbbbssssttttrrrriiiinnnngggg EEEExxxxppppaaaannnnssssiiiioooonnnn....  Expands to    up to _l_e_n_g_t_h
  1532.            characters of _p_a_r_a_m_e_t_e_r,    starting at the    characters
  1533.            specified by _o_f_f_s_e_t.  If    _l_e_n_g_t_h is omitted, expands to
  1534.            the substring of    _p_a_r_a_m_e_t_e_r, starting at the character
  1535.            specified by _o_f_f_s_e_t.  _l_e_n_g_t_h and    _o_f_f_s_e_t are arithmetic
  1536.            expressions (see    AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN below).  _l_e_n_g_t_h
  1537.            must evaluate to    a number greater than or equal to
  1538.            zero.  If _o_f_f_s_e_t    evaluates to a number less than    zero,
  1539.            the value is used as an offset from the end of the
  1540.            value of    _p_a_r_a_m_e_t_e_r.  If _p_a_r_a_m_e_t_e_r is @@@@, the result is
  1541.            _l_e_n_g_t_h positional parameters beginning at _o_f_f_s_e_t.  If
  1542.            _p_a_r_a_m_e_t_e_r is an array name indexed by @ or *, the
  1543.            result is the _l_e_n_g_t_h members of the array beginning
  1544.            with ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}.  Substring indexing is
  1545.            zero-based unless the positional    parameters are used,
  1546.            in which    case the indexing starts at 1.
  1547.  
  1548.       ${####_p_a_r_a_m_e_t_e_r}
  1549.            The length in characters    of the value of    _p_a_r_a_m_e_t_e_r is
  1550.            substituted.  If    _p_a_r_a_m_e_t_e_r is **** or @@@@, the value
  1551.            substituted is the number of positional parameters.  If
  1552.            _p_a_r_a_m_e_t_e_r is an array name subscripted by **** or @@@@, the
  1553.            value substituted is the    number of elements in the
  1554.            array.
  1555.  
  1556.       ${_p_a_r_a_m_e_t_e_r####_w_o_r_d}
  1557.       ${_p_a_r_a_m_e_t_e_r########_w_o_r_d}
  1558.            The _w_o_r_d    is expanded to produce a pattern just as in
  1559.            pathname    expansion.  If the pattern matches the
  1560.            beginning of the    value of _p_a_r_a_m_e_t_e_r, then the result of
  1561.            the expansion is    the expanded value of _p_a_r_a_m_e_t_e_r    with
  1562.            the shortest matching pattern (the ``####''    case) or the
  1563.            longest matching    pattern    (the ``########'' case) deleted.  If
  1564.            _p_a_r_a_m_e_t_e_r is @@@@ or ****, the    pattern    removal    operation is
  1565.            applied to each positional parameter in turn, and the
  1566.            expansion is the    resultant list.     If _p_a_r_a_m_e_t_e_r is an
  1567.            array variable subscripted with @@@@ or ****, the pattern
  1568.            removal operation is applied to each member of the
  1569.            array in    turn, and the expansion    is the resultant list.
  1570.  
  1571.       ${_p_a_r_a_m_e_t_e_r%%%%_w_o_r_d}
  1572.       ${_p_a_r_a_m_e_t_e_r%%%%%%%%_w_o_r_d}
  1573.            The _w_o_r_d    is expanded to produce a pattern just as in
  1574.            pathname    expansion.  If the pattern matches a trailing
  1575.            portion of the expanded value of    _p_a_r_a_m_e_t_e_r, then    the
  1576.            result of the expansion is the expanded value of
  1577.            _p_a_r_a_m_e_t_e_r with the shortest matching pattern (the ``%%%%''
  1578.  
  1579.  
  1580.  
  1581.      Page 24                         (printed 3/25/99)
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1589.  
  1590.  
  1591.  
  1592.            case) or    the longest matching pattern (the ``%%%%%%%%'' case)
  1593.            deleted.     If _p_a_r_a_m_e_t_e_r is @@@@ or ****, the pattern removal
  1594.            operation is applied to each positional parameter in
  1595.            turn, and the expansion is the resultant    list.  If
  1596.            _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@@@ or ****,
  1597.            the pattern removal operation is    applied    to each    member
  1598.            of the array in turn, and the expansion is the
  1599.            resultant list.
  1600.  
  1601.       ${_p_a_r_a_m_e_t_e_r////_p_a_t_t_e_r_n////_s_t_r_i_n_g}
  1602.       ${_p_a_r_a_m_e_t_e_r////////_p_a_t_t_e_r_n////_s_t_r_i_n_g}
  1603.            The _p_a_t_t_e_r_n is expanded to produce a pattern just as in
  1604.            pathname    expansion.  _P_a_r_a_m_e_t_e_r is expanded and the
  1605.            longest match of    _p_a_t_t_e_r_n    against    its value is replaced
  1606.            with _s_t_r_i_n_g.  In    the first form,    only the first match
  1607.            is replaced.  The second    form causes all    matches    of
  1608.            _p_a_t_t_e_r_n to be replaced with _s_t_r_i_n_g.  If _p_a_t_t_e_r_n begins
  1609.            with ####, it must match at    the beginning of the expanded
  1610.            value of    _p_a_r_a_m_e_t_e_r.  If _p_a_t_t_e_r_n begins with %%%%, it must
  1611.            match at    the end    of the expanded    value of _p_a_r_a_m_e_t_e_r.
  1612.            If _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted and
  1613.            the //// following _p_a_t_t_e_r_n may be omitted.    If _p_a_r_a_m_e_t_e_r
  1614.            is @@@@ or ****, the substitution operation is    applied    to
  1615.            each positional parameter in turn, and the expansion is
  1616.            the resultant list.  If _p_a_r_a_m_e_t_e_r is an array variable
  1617.            subscripted with    @@@@ or ****,    the substitution operation is
  1618.            applied to each member of the array in turn, and    the
  1619.            expansion is the    resultant list.
  1620.  
  1621.     CCCCoooommmmmmmmaaaannnndddd    SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
  1622.       _C_o_m_m_a_n_d _s_u_b_s_t_i_t_u_t_i_o_n allows the output of a command to
  1623.       replace the command name.  There are two forms:
  1624.  
  1625.            $$$$((((_c_o_m_m_a_n_d))))
  1626.       or
  1627.            ````_c_o_m_m_a_n_d````
  1628.  
  1629.       BBBBaaaasssshhhh performs    the expansion by executing _c_o_m_m_a_n_d and
  1630.       replacing the    command    substitution with the standard output
  1631.       of the command, with any trailing newlines deleted.
  1632.       Embedded newlines are    not deleted, but they may be removed
  1633.       during word splitting.  The command substitution $$$$((((ccccaaaatttt _f_i_l_e))))
  1634.       can be replaced by the equivalent but    faster $$$$((((<<<< _f_i_l_e)))).
  1635.  
  1636.       When the old-style backquote form of substitution is used,
  1637.       backslash retains its    literal    meaning    except when followed
  1638.       by $$$$,    ````, or \\\\.  The first backquote not preceded by a
  1639.       backslash terminates the command substitution.  When using
  1640.       the $(_c_o_m_m_a_n_d) form, all characters between the parentheses
  1641.       make up the command; none are    treated    specially.
  1642.  
  1643.       Command substitutions    may be nested.    To nest    when using the
  1644.  
  1645.  
  1646.  
  1647.      Page 25                         (printed 3/25/99)
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1655.  
  1656.  
  1657.  
  1658.       backquoted form, escape the inner backquotes with
  1659.       backslashes.
  1660.  
  1661.       If the substitution appears within double quotes, word
  1662.       splitting and    pathname expansion are not performed on    the
  1663.       results.
  1664.  
  1665.     AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEExxxxppppaaaannnnssssiiiioooonnnn
  1666.       Arithmetic expansion allows the evaluation of    an arithmetic
  1667.       expression and the substitution of the result.  The format
  1668.       for arithmetic expansion is:
  1669.  
  1670.            $$$$((((((((_e_x_p_r_e_s_s_i_o_n))))))))
  1671.  
  1672.       The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double
  1673.       quotes, but a    double quote inside the    parentheses is not
  1674.       treated specially.  All tokens in the    expression undergo
  1675.       parameter expansion, string expansion, command substitution,
  1676.       and quote removal.  Arithmetic substitutions may be nested.
  1677.  
  1678.       The evaluation is performed according    to the rules listed
  1679.       below    under AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN.  If _e_x_p_r_e_s_s_i_o_n is
  1680.       invalid, bbbbaaaasssshhhh    prints a message indicating failure and    no
  1681.       substitution occurs.
  1682.  
  1683.     PPPPrrrroooocccceeeessssssss    SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
  1684.       _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support
  1685.       named    pipes (_F_I_F_O_s) or the ////ddddeeeevvvv////ffffdddd method of naming open
  1686.       files.  It takes the form of <<<<((((_l_i_s_t)))) or >>>>((((_l_i_s_t)))).  The
  1687.       process _l_i_s_t is run with its input or    output connected to a
  1688.       _F_I_F_O or some file in ////ddddeeeevvvv////ffffdddd.     The name of this file is
  1689.       passed as an argument    to the current command as the result
  1690.       of the expansion.  If    the >>>>((((_l_i_s_t)))) form is used, writing to
  1691.       the file will    provide    input for _l_i_s_t.     If the    <<<<((((_l_i_s_t))))    form
  1692.       is used, the file passed as an argument should be read to
  1693.       obtain the output of _l_i_s_t.
  1694.  
  1695.       When available, _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is performed
  1696.       simultaneously with parameter    and variable expansion,
  1697.       command substitution,    and arithmetic expansion.
  1698.  
  1699.     WWWWoooorrrrdddd SSSSpppplllliiiittttttttiiiinnnngggg
  1700.       The shell scans the results of parameter expansion, command
  1701.       substitution,    and arithmetic expansion that did not occur
  1702.       within double    quotes for _w_o_r_d    _s_p_l_i_t_t_i_n_g.
  1703.  
  1704.       The shell treats each    character of IIIIFFFFSSSS as a delimiter, and
  1705.       splits the results of    the other expansions into words    on
  1706.       these    characters.  If    IIIIFFFFSSSS is unset, or its value is exactly
  1707.       <<<<ssssppppaaaacccceeee>>>><<<<ttttaaaabbbb>>>><<<<nnnneeeewwwwlllliiiinnnneeee>>>>, the default, then any sequence    of IIIIFFFFSSSS
  1708.       characters serves to delimit words.  If IIIIFFFFSSSS has a value
  1709.       other    than the default, then sequences of the    whitespace
  1710.  
  1711.  
  1712.  
  1713.      Page 26                         (printed 3/25/99)
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1721.  
  1722.  
  1723.  
  1724.       characters ssssppppaaaacccceeee and ttttaaaabbbb are ignored at the beginning    and
  1725.       end of the word, as long as the whitespace character is in
  1726.       the value of IIIIFFFFSSSS (an IIIIFFFFSSSS whitespace character).  Any
  1727.       character in IIIIFFFFSSSS that    is not IIIIFFFFSSSS whitespace, along with any
  1728.       adjacent IIIIFFFFSSSS whitespace characters, delimits a field.     A
  1729.       sequence of IIIIFFFFSSSS whitespace characters    is also    treated    as a
  1730.       delimiter.  If the value of IIIIFFFFSSSS is null, no word splitting
  1731.       occurs.
  1732.  
  1733.       Explicit null    arguments ("""""""" or '''''''') are retained.  Unquoted
  1734.       implicit null    arguments, resulting from the expansion    of
  1735.       _p_a_r_a_m_e_t_e_r_s that have no values, are removed.    If a parameter
  1736.       with no value    is expanded within double quotes, a null
  1737.       argument results and is retained.
  1738.  
  1739.       Note that if no expansion occurs, no splitting is performed.
  1740.  
  1741.     PPPPaaaatttthhhhnnnnaaaammmmeeee EEEExxxxppppaaaannnnssssiiiioooonnnn
  1742.       After    word splitting,    unless the ----ffff option has been set,
  1743.       bbbbaaaasssshhhh scans each word for the characters ****, ????,    ((((, and [[[[.  If
  1744.       one of these characters appears, then    the word is regarded
  1745.       as a _p_a_t_t_e_r_n,    and replaced with an alphabetically sorted
  1746.       list of file names matching the pattern.  If no matching
  1747.       file names are found,    and the    shell option nnnnuuuullllllllgggglllloooobbbb is
  1748.       disabled, the    word is    left unchanged.     If the    nnnnuuuullllllllgggglllloooobbbb
  1749.       option is set, and no    matches    are found, the word is
  1750.       removed.  If the shell option    nnnnooooccccaaaasssseeeegggglllloooobbbb is enabled, the
  1751.       match    is performed without regard to the case    of alphabetic
  1752.       characters.  When a pattern is used for pathname expansion,
  1753.       the character    ````````....'''''''' at the start of a    name or    immediately
  1754.       following a slash must be matched explicitly,    unless the
  1755.       shell    option ddddoooottttgggglllloooobbbb is set.    When matching a    pathname, the
  1756.       slash    character must always be matched explicitly.  In other
  1757.       cases, the ````````....'''''''' character is    not treated specially.    See
  1758.       the description of sssshhhhoooopppptttt below under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  1759.       for a    description of the nnnnooooccccaaaasssseeeegggglllloooobbbb, nnnnuuuullllllllgggglllloooobbbb, and ddddoooottttgggglllloooobbbb
  1760.       shell    options.
  1761.  
  1762.       The GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE shell variable    may be used to restrict    the
  1763.       set of file names matching a _p_a_t_t_e_r_n.     If GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE is set,
  1764.       each matching    file name that also matches one    of the
  1765.       patterns in GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE is removed from the list of matches.
  1766.       The file names ````````....'''''''' and ````````........'''''''' are always ignored, even
  1767.       when GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE is set.  However, setting GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE has the
  1768.       effect of enabling the ddddoooottttgggglllloooobbbb shell option, so all other
  1769.       file names beginning with a ````````....'''''''' will match.     To get    the
  1770.       old behavior of ignoring file    names beginning    with a ````````....'''''''',
  1771.       make ````````....****'''''''' one of the patterns in GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE.  The ddddoooottttgggglllloooobbbb
  1772.       option is disabled when GGGGLLLLOOOOBBBBIIIIGGGGNNNNOOOORRRREEEE is    unset.
  1773.  
  1774.       PPPPaaaatttttttteeeerrrrnnnn MMMMaaaattttcccchhhhiiiinnnngggg
  1775.  
  1776.  
  1777.  
  1778.  
  1779.      Page 27                         (printed 3/25/99)
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1787.  
  1788.  
  1789.  
  1790.       Any character    that appears in    a pattern, other than the
  1791.       special pattern characters described below, matches itself.
  1792.       The NUL character may    not occur in a pattern.     The special
  1793.       pattern characters must be quoted if they are    to be matched
  1794.       literally.
  1795.  
  1796.       The special pattern characters have the following meanings:
  1797.  
  1798.       ****    Matches any string, including the null string.
  1799.       ????    Matches any single character.
  1800.       [[[[............]]]]
  1801.            Matches any one of the enclosed characters.  A pair of
  1802.            characters separated by a minus sign denotes a _r_a_n_g_e;
  1803.            any character lexically between those two characters,
  1804.            inclusive, is matched.  If the first character
  1805.            following the [[[[ is a !!!! or a ^^^^ then any character    not
  1806.            enclosed    is matched.  A ---- may be    matched    by including
  1807.            it as the first or last character in the    set.  A    ]]]] may
  1808.            be matched by including it as the first character in
  1809.            the set.
  1810.  
  1811.            Within [[[[    and ]]]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be    specified
  1812.            using the syntax    [[[[::::_c_l_a_s_s::::]]]], where _c_l_a_s_s is one of the
  1813.            following classes defined in the    POSIX.2    standard:
  1814.            aaaallllnnnnuuuummmm aaaallllpppphhhhaaaa aaaasssscccciiiiiiii bbbbllllaaaannnnkkkk ccccnnnnttttrrrrllll ddddiiiiggggiiiitttt ggggrrrraaaapppphhhh lllloooowwwweeeerrrr pppprrrriiiinnnntttt
  1815.            ppppuuuunnnncccctttt ssssppppaaaacccceeee uuuuppppppppeeeerrrr xxxxddddiiiiggggiiiitttt
  1816.            A character class matches any character belonging to
  1817.            that class.
  1818.  
  1819.            Within [[[[    and ]]]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can    be specified
  1820.            using the syntax    [[[[====_c====]]]], which matches all characters
  1821.            with the    same collation weight (as defined by the
  1822.            current locale) as the character    _c.
  1823.  
  1824.            Within [[[[    and ]]]], the syntax [[[[...._s_y_m_b_o_l....]]]] matches the
  1825.            collating symbol    _s_y_m_b_o_l.
  1826.  
  1827.       If the eeeexxxxttttgggglllloooobbbb shell option is enabled using the sssshhhhoooopppptttt
  1828.       builtin, several extended pattern matching operators are
  1829.       recognized.  In the following    description, a _p_a_t_t_e_r_n-_l_i_s_t is
  1830.       a list of one    or more    patterns separated by a    ||||.  Composite
  1831.       patterns may be formed using one or more of the following
  1832.       sub-patterns:
  1833.  
  1834.            ????((((_p_a_t_t_e_r_n-_l_i_s_t))))
  1835.             Matches zero or one    occurrence of the given
  1836.             patterns
  1837.            ****((((_p_a_t_t_e_r_n-_l_i_s_t))))
  1838.             Matches zero or more occurrences of    the given
  1839.             patterns
  1840.            ++++((((_p_a_t_t_e_r_n-_l_i_s_t))))
  1841.             Matches one    or more    occurrences of the given
  1842.  
  1843.  
  1844.  
  1845.      Page 28                         (printed 3/25/99)
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1853.  
  1854.  
  1855.  
  1856.             patterns
  1857.            @@@@((((_p_a_t_t_e_r_n-_l_i_s_t))))
  1858.             Matches exactly one    of the given patterns
  1859.            !!!!((((_p_a_t_t_e_r_n-_l_i_s_t))))
  1860.             Matches anything except one    of the given patterns
  1861.  
  1862.     QQQQuuuuooootttteeee RRRReeeemmmmoooovvvvaaaallll
  1863.       After    the preceding expansions, all unquoted occurrences of
  1864.       the characters \\\\, '''', and """" that did not result from one of
  1865.       the above expansions are removed.
  1866.  
  1867.      RRRREEEEDDDDIIIIRRRREEEECCCCTTTTIIIIOOOONNNN
  1868.       Before a command is executed,    its input and output may be
  1869.       _r_e_d_i_r_e_c_t_e_d using a special notation interpreted by the
  1870.       shell.  Redirection may also be used to open and close files
  1871.       for the current shell    execution environment.    The following
  1872.       redirection operators    may precede or appear anywhere within
  1873.       a _s_i_m_p_l_e _c_o_m_m_a_n_d or may follow a _c_o_m_m_a_n_d.  Redirections are
  1874.       processed in the order they appear, from left    to right.
  1875.  
  1876.       In the following descriptions, if the    file descriptor    number
  1877.       is omitted, and the first character of the redirection
  1878.       operator is <<<<, the redirection refers    to the standard    input
  1879.       (file    descriptor 0).    If the first character of the
  1880.       redirection operator is >>>>, the redirection refers to the
  1881.       standard output (file    descriptor 1).
  1882.  
  1883.       The word following the redirection operator in the following
  1884.       descriptions,    unless otherwise noted,    is subjected to    brace
  1885.       expansion, tilde expansion, parameter    expansion, command
  1886.       substitution,    arithmetic expansion, quote removal, and
  1887.       pathname expansion.  If it expands to    more than one word,
  1888.       bbbbaaaasssshhhh reports an error.
  1889.  
  1890.       Note that the    order of redirections is significant.  For
  1891.       example, the command
  1892.  
  1893.            ls >>>> dirlist 2>>>>&&&&1
  1894.  
  1895.       directs both standard    output and standard error to the file
  1896.       _d_i_r_l_i_s_t, while the command
  1897.  
  1898.            ls 2>>>>&&&&1 >>>> dirlist
  1899.  
  1900.       directs only the standard output to file _d_i_r_l_i_s_t, because
  1901.       the standard error was duplicated as standard    output before
  1902.       the standard output was redirected to    _d_i_r_l_i_s_t.
  1903.  
  1904.       A failure to open or create a    file causes the    redirection to
  1905.       fail.
  1906.  
  1907.     RRRReeeeddddiiiirrrreeeeccccttttiiiinnnngggg IIIInnnnppppuuuutttt
  1908.  
  1909.  
  1910.  
  1911.      PPPPaaaaggggeeee 22229999                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1919.  
  1920.  
  1921.  
  1922.       Redirection of input causes the file whose name results from
  1923.       the expansion    of _w_o_r_d    to be opened for reading on file
  1924.       descriptor _n,    or the standard    input (file descriptor 0) if _n
  1925.       is not specified.
  1926.  
  1927.       The general format for redirecting input is:
  1928.  
  1929.            [_n]<<<<_w_o_r_d
  1930.  
  1931.     RRRReeeeddddiiiirrrreeeeccccttttiiiinnnngggg OOOOuuuuttttppppuuuutttt
  1932.       Redirection of output    causes the file    whose name results
  1933.       from the expansion of    _w_o_r_d to    be opened for writing on file
  1934.       descriptor _n,    or the standard    output (file descriptor    1) if
  1935.       _n is not specified.  If the file does    not exist it is
  1936.       created; if it does exist it is truncated to zero size.
  1937.  
  1938.       The general format for redirecting output is:
  1939.  
  1940.            [_n]>>>>_w_o_r_d
  1941.  
  1942.       If the redirection operator is >>>>, and    the nnnnoooocccclllloooobbbbbbbbeeeerrrr option
  1943.       to the sssseeeetttt builtin has been enabled, the redirection will
  1944.       fail if the filename whose name results from the expansion
  1945.       of _w_o_r_d exists and is    a regular file.     If the    redirection
  1946.       operator is >>>>||||, or the redirection operator is >>>> and the
  1947.       nnnnoooocccclllloooobbbbbbbbeeeerrrr option to the sssseeeetttt builtin command is not enabled,
  1948.       the redirection is attempted even if the file    named by _w_o_r_d
  1949.       exists.
  1950.  
  1951.     AAAAppppppppeeeennnnddddiiiinnnngggg RRRReeeeddddiiiirrrreeeecccctttteeeedddd OOOOuuuuttttppppuuuutttt
  1952.       Redirection of output    in this    fashion    causes the file    whose
  1953.       name results from the    expansion of _w_o_r_d to be    opened for
  1954.       appending on file descriptor _n, or the standard output (file
  1955.       descriptor 1)    if _n is    not specified.    If the file does not
  1956.       exist    it is created.
  1957.  
  1958.       The general format for appending output is:
  1959.  
  1960.            [_n]>>>>>>>>_w_o_r_d
  1961.  
  1962.     RRRReeeeddddiiiirrrreeeeccccttttiiiinnnngggg SSSSttttaaaannnnddddaaaarrrrdddd OOOOuuuuttttppppuuuutttt aaaannnndddd    SSSSttttaaaannnnddddaaaarrrrdddd EEEErrrrrrrroooorrrr
  1963.       BBBBaaaasssshhhh allows both the standard    output (file descriptor    1) and
  1964.       the standard error output (file descriptor 2)    to be
  1965.       redirected to    the file whose name is the expansion of    _w_o_r_d
  1966.       with this construct.
  1967.  
  1968.       There    are two    formats    for redirecting    standard output    and
  1969.       standard error:
  1970.  
  1971.            &&&&>>>>_w_o_r_d
  1972.       and
  1973.            >>>>&&&&_w_o_r_d
  1974.  
  1975.  
  1976.  
  1977.      Page 30                         (printed 3/25/99)
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  1985.  
  1986.  
  1987.  
  1988.       Of the two forms, the    first is preferred.  This is
  1989.       semantically equivalent to
  1990.  
  1991.            >>>>_w_o_r_d 2>>>>&&&&1
  1992.  
  1993.     HHHHeeeerrrreeee DDDDooooccccuuuummmmeeeennnnttttssss
  1994.       This type of redirection instructs the shell to read input
  1995.       from the current source until    a line containing only _w_o_r_d
  1996.       (with    no trailing blanks) is seen.  All of the lines read up
  1997.       to that point    are then used as the standard input for    a
  1998.       command.
  1999.  
  2000.       The format of    here-documents is as follows:
  2001.  
  2002.            <<<<<<<<[----]_w_o_r_d
  2003.                _h_e_r_e-_d_o_c_u_m_e_n_t
  2004.            _d_e_l_i_m_i_t_e_r
  2005.  
  2006.       No parameter expansion, command substitution,    pathname
  2007.       expansion, or    arithmetic expansion is    performed on _w_o_r_d.  If
  2008.       any characters in _w_o_r_d are quoted, the _d_e_l_i_m_i_t_e_r is the
  2009.       result of quote removal on _w_o_r_d, and the lines in the    here-
  2010.       document are not expanded.  If _w_o_r_d is unquoted, all lines
  2011.       of the here-document are subjected to    parameter expansion,
  2012.       command substitution,    and arithmetic expansion.  In the
  2013.       latter case, the pair    \\\\<<<<nnnneeeewwwwlllliiiinnnneeee>>>> is ignored, and \\\\ must be
  2014.       used to quote    the characters \\\\, $$$$, and ````.
  2015.  
  2016.       If the redirection operator is <<<<<<<<----, then all leading tab
  2017.       characters are stripped from input lines and the line
  2018.       containing _d_e_l_i_m_i_t_e_r.     This allows here-documents within
  2019.       shell    scripts    to be indented in a natural fashion.
  2020.  
  2021.     DDDDuuuupppplllliiiiccccaaaattttiiiinnnngggg FFFFiiiilllleeee DDDDeeeessssccccrrrriiiippppttttoooorrrrssss
  2022.       The redirection operator
  2023.  
  2024.            [_n]<<<<&&&&_w_o_r_d
  2025.  
  2026.       is used to duplicate input file descriptors.    If _w_o_r_d
  2027.       expands to one or more digits, the file descriptor denoted
  2028.       by _n is made to be a copy of that file descriptor.  If the
  2029.       digits in _w_o_r_d do not    specify    a file descriptor open for
  2030.       input, a redirection error occurs.  If _w_o_r_d evaluates    to ----,
  2031.       file descriptor _n is closed.    If _n is    not specified, the
  2032.       standard input (file descriptor 0) is    used.
  2033.  
  2034.       The operator
  2035.  
  2036.            [_n]>>>>&&&&_w_o_r_d
  2037.  
  2038.       is used similarly to duplicate output    file descriptors.  If
  2039.       _n is not specified, the standard output (file    descriptor 1)
  2040.  
  2041.  
  2042.  
  2043.      Page 31                         (printed 3/25/99)
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2051.  
  2052.  
  2053.  
  2054.       is used.  If the digits in _w_o_r_d do not specify a file
  2055.       descriptor open for output, a    redirection error occurs.  As
  2056.       a special case, if _n is omitted, and _w_o_r_d does not expand to
  2057.       one or more digits, the standard output and standard error
  2058.       are redirected as described previously.
  2059.  
  2060.     OOOOppppeeeennnniiiinnnngggg    FFFFiiiilllleeee DDDDeeeessssccccrrrriiiippppttttoooorrrrssss ffffoooorrrr RRRReeeeaaaaddddiiiinnnngggg aaaannnndddd WWWWrrrriiiittttiiiinnnngggg
  2061.       The redirection operator
  2062.  
  2063.            [_n]<<<<>>>>_w_o_r_d
  2064.  
  2065.       causes the file whose    name is    the expansion of _w_o_r_d to be
  2066.       opened for both reading and writing on file descriptor _n, or
  2067.       on file descriptor 0 if _n is not specified.  If the file
  2068.       does not exist, it is    created.
  2069.  
  2070.      AAAALLLLIIIIAAAASSSSEEEESSSS
  2071.       Aliases allow    a string to be substituted for a word when it
  2072.       is used as the first word of a simple    command.  The shell
  2073.       maintains a list of _a_l_i_a_s_e_s that may be set and unset    with
  2074.       the aaaalllliiiiaaaassss and    uuuunnnnaaaalllliiiiaaaassss    builtin    commands (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN
  2075.       CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).  The    first word of each command, if
  2076.       unquoted, is checked to see if it has    an alias.  If so, that
  2077.       word is replaced by the text of the alias.  The alias    name
  2078.       and the replacement text may contain any valid shell input,
  2079.       including the    _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above, with the
  2080.       exception that the alias name    may not    contain    =.  The    first
  2081.       word of the replacement text is tested for aliases, but a
  2082.       word that is identical to an alias being expanded is not
  2083.       expanded a second time.  This    means that one may alias llllssss to
  2084.       llllssss ----FFFF, for instance, and bbbbaaaasssshhhh    does not try to    recursively
  2085.       expand the replacement text.    If the last character of the
  2086.       alias    value is a _b_l_a_n_k, then the next    command    word following
  2087.       the alias is also checked for    alias expansion.
  2088.  
  2089.       Aliases are created and listed with the aaaalllliiiiaaaassss    command, and
  2090.       removed with the uuuunnnnaaaalllliiiiaaaassss command.
  2091.  
  2092.       There    is no mechanism    for using arguments in the replacement
  2093.       text.     If arguments are needed, a shell function should be
  2094.       used.
  2095.  
  2096.       Aliases are not expanded when    the shell is not interactive,
  2097.       unless the eeeexxxxppppaaaannnndddd____aaaalllliiiiaaaasssseeeessss shell option is set    using sssshhhhoooopppptttt
  2098.       (see the description of sssshhhhoooopppptttt    under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  2099.       below).
  2100.  
  2101.       The rules concerning the definition and use of aliases are
  2102.       somewhat confusing.  BBBBaaaasssshhhh always reads at least one complete
  2103.       line of input    before executing any of    the commands on    that
  2104.       line.     Aliases are expanded when a command is    read, not when
  2105.       it is    executed.  Therefore, an alias definition appearing on
  2106.  
  2107.  
  2108.  
  2109.      Page 32                         (printed 3/25/99)
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2117.  
  2118.  
  2119.  
  2120.       the same line    as another command does    not take effect    until
  2121.       the next line    of input is read.  The commands    following the
  2122.       alias    definition on that line    are not    affected by the    new
  2123.       alias.  This behavior    is also    an issue when functions    are
  2124.       executed.  Aliases are expanded when a function definition
  2125.       is read, not when the    function is executed, because a
  2126.       function definition is itself    a compound command.  As    a
  2127.       consequence, aliases defined in a function are not available
  2128.       until    after that function is executed.  To be    safe, always
  2129.       put alias definitions    on a separate line, and    do not use
  2130.       aaaalllliiiiaaaassss    in compound commands.
  2131.  
  2132.       For almost every purpose, aliases are    superseded by shell
  2133.       functions.
  2134.  
  2135.      FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  2136.       A shell function, defined as described above under SSSSHHHHEEEELLLLLLLL
  2137.       GGGGRRRRAAAAMMMMMMMMAAAARRRR, stores a series of commands for later execution.
  2138.       Functions are    executed in the    context    of the current shell;
  2139.       no new process is created to interpret them (contrast    this
  2140.       with the execution of    a shell    script).  When a function is
  2141.       executed, the    arguments to the function become the
  2142.       positional parameters    during its execution.  The special
  2143.       parameter #### is updated to reflect the    change.     Positional
  2144.       parameter 0 is unchanged.  All other aspects of the shell
  2145.       execution environment    are identical between a    function and
  2146.       its caller with the exception    that the DDDDEEEEBBBBUUUUGGGG trap (see the
  2147.       description of the ttttrrrraaaapppp builtin under    SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  2148.       below) is not    inherited.
  2149.  
  2150.       Variables local to the function may be declared with the
  2151.       llllooooccccaaaallll    builtin    command.  Ordinarily, variables    and their
  2152.       values are shared between the    function and its caller.
  2153.  
  2154.       If the builtin command rrrreeeettttuuuurrrrnnnn    is executed in a function, the
  2155.       function completes and execution resumes with    the next
  2156.       command after    the function call.  When a function completes,
  2157.       the values of    the positional parameters and the special
  2158.       parameter #### are restored to the values they had prior    to the
  2159.       function's execution.
  2160.  
  2161.       Function names and definitions may be    listed with the    ----ffff
  2162.       option to the    ddddeeeeccccllllaaaarrrreeee    or ttttyyyyppppeeeesssseeeetttt builtin commands.  The ----FFFF
  2163.       option to ddddeeeeccccllllaaaarrrreeee or ttttyyyyppppeeeesssseeeetttt will list the function names
  2164.       only.     Functions may be exported so that subshells
  2165.       automatically    have them defined with the ----ffff option to    the
  2166.       eeeexxxxppppoooorrrrtttt builtin.
  2167.  
  2168.       Functions may    be recursive.  No limit    is imposed on the
  2169.       number of recursive calls.
  2170.  
  2171.      AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC    EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN
  2172.  
  2173.  
  2174.  
  2175.      PPPPaaaaggggeeee 33333333                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2183.  
  2184.  
  2185.  
  2186.       The shell allows arithmetic expressions to be    evaluated,
  2187.       under    certain    circumstances (see the lllleeeetttt builtin command and
  2188.       AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEExxxxppppaaaannnnssssiiiioooonnnn).  Evaluation is    done in    long integers
  2189.       with no check    for overflow, though division by 0 is trapped
  2190.       and flagged as an error.  The    following list of operators is
  2191.       grouped into levels of equal-precedence operators.  The
  2192.       levels are listed in order of    decreasing precedence.
  2193.  
  2194.       ---- ++++  unary minus and plus
  2195.       !!!! ~~~~  logical and bitwise negation
  2196.       ********   exponentiation
  2197.       **** //// %%%%
  2198.            multiplication, division, remainder
  2199.       ++++ ----  addition, subtraction
  2200.       <<<<<<<< >>>>>>>>
  2201.            left and    right bitwise shifts
  2202.       <<<<==== >>>>====    <<<< >>>>
  2203.            comparison
  2204.       ======== !!!!====
  2205.            equality    and inequality
  2206.       &&&&    bitwise AND
  2207.       ^^^^    bitwise exclusive OR
  2208.       ||||    bitwise OR
  2209.       &&&&&&&&   logical AND
  2210.       ||||||||   logical OR
  2211.       _e_x_p_r????_e_x_p_r::::_e_x_p_r
  2212.            conditional evaluation
  2213.       ==== ****==== ////==== %%%%==== ++++====    ----====
  2214.            assignment
  2215.  
  2216.       Shell    variables are allowed as operands; parameter expansion
  2217.       is performed before the expression is    evaluated. The value
  2218.       of a parameter is coerced to a long integer within an
  2219.       expression.  A shell variable    need not have its integer
  2220.       attribute turned on to be used in an expression.
  2221.  
  2222.       Constants with a leading 0 are interpreted as    octal numbers.
  2223.       A leading 0x or 0X denotes hexadecimal.  Otherwise, numbers
  2224.       take the form    [_b_a_s_e#]n, where    _b_a_s_e is    a decimal number
  2225.       between 2 and    64 representing    the arithmetic base, and _n is
  2226.       a number in that base.  If _b_a_s_e is omitted, then base    10 is
  2227.       used.     The digits greater than 9 are represented by the
  2228.       lowercase letters, the uppercase letters, _, and @, in that
  2229.       order.  If _b_a_s_e is less than or equal    to 36, lowercase and
  2230.       uppercase letters may    be used    interchangably to represent
  2231.       numbers between 10 and 35.
  2232.  
  2233.       Operators are    evaluated in order of precedence.  Sub-
  2234.       expressions in parentheses are evaluated first and may
  2235.       override the precedence rules    above.
  2236.  
  2237.      CCCCOOOONNNNDDDDIIIITTTTIIIIOOOONNNNAAAALLLL EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS
  2238.  
  2239.  
  2240.  
  2241.      PPPPaaaaggggeeee 33334444                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2249.  
  2250.  
  2251.  
  2252.       Conditional expressions are used by the [[[[[[[[ compound command
  2253.       and the tttteeeesssstttt and [[[[ builtin commands to test file attributes
  2254.       and perform string and arithmetic comparisons.  Expressions
  2255.       are formed from the following    unary or binary    primaries.  If
  2256.       any _f_i_l_e argument to one of the primaries is of the form
  2257.       /dev/fd/_n, then file descriptor _n is checked.
  2258.  
  2259.       ----aaaa _f_i_l_e
  2260.            True if _f_i_l_e exists.
  2261.       ----bbbb _f_i_l_e
  2262.            True if _f_i_l_e exists and is a block special file.
  2263.       ----cccc _f_i_l_e
  2264.            True if _f_i_l_e exists and is a character special file.
  2265.       ----dddd _f_i_l_e
  2266.            True if _f_i_l_e exists and is a directory.
  2267.       ----eeee _f_i_l_e
  2268.            True if _f_i_l_e exists.
  2269.       ----ffff _f_i_l_e
  2270.            True if _f_i_l_e exists and is a regular file.
  2271.       ----gggg _f_i_l_e
  2272.            True if _f_i_l_e exists and is set-group-id.
  2273.       ----hhhh _f_i_l_e
  2274.            True if _f_i_l_e exists and is a symbolic link.
  2275.       ----kkkk _f_i_l_e
  2276.            True if _f_i_l_e exists and its ``sticky'' bit is set.
  2277.       ----pppp _f_i_l_e
  2278.            True if _f_i_l_e exists and is a named pipe (FIFO).
  2279.       ----rrrr _f_i_l_e
  2280.            True if _f_i_l_e exists and is readable.
  2281.       ----ssss _f_i_l_e
  2282.            True if _f_i_l_e exists and has a size greater than zero.
  2283.       ----tttt _f_d
  2284.            True if file descriptor _f_d is open and refers to    a
  2285.            terminal.
  2286.       ----uuuu _f_i_l_e
  2287.            True if _f_i_l_e exists and its set-user-id bit is set.
  2288.       ----wwww _f_i_l_e
  2289.            True if _f_i_l_e exists and is writable.
  2290.       ----xxxx _f_i_l_e
  2291.            True if _f_i_l_e exists and is executable.
  2292.       ----OOOO _f_i_l_e
  2293.            True if _f_i_l_e exists and is owned    by the effective user
  2294.            id.
  2295.       ----GGGG _f_i_l_e
  2296.            True if _f_i_l_e exists and is owned    by the effective group
  2297.            id.
  2298.       ----LLLL _f_i_l_e
  2299.            True if _f_i_l_e exists and is a symbolic link.
  2300.       ----SSSS _f_i_l_e
  2301.            True if _f_i_l_e exists and is a socket.
  2302.       ----NNNN _f_i_l_e
  2303.            True if _f_i_l_e exists and has been    modified since it was
  2304.  
  2305.  
  2306.  
  2307.      Page 35                         (printed 3/25/99)
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2315.  
  2316.  
  2317.  
  2318.            last read.
  2319.       _f_i_l_e_1    -nnnntttt _f_i_l_e_2
  2320.            True if _f_i_l_e_1 is    newer (according to modification date)
  2321.            than _f_i_l_e_2.
  2322.       _f_i_l_e_1    -ooootttt _f_i_l_e_2
  2323.            True if _f_i_l_e_1 is    older than _f_i_l_e_2.
  2324.       _f_i_l_e_1    ----eeeeffff _f_i_l_e_2
  2325.            True if _f_i_l_e_1 and _f_i_l_e_2 have the    same device and    inode
  2326.            numbers.
  2327.       ----oooo _o_p_t_n_a_m_e
  2328.            True if shell option _o_p_t_n_a_m_e is enabled.     See the list
  2329.            of options under    the description    of the ----oooo option to
  2330.            the sssseeeetttt builtin below.
  2331.       ----zzzz _s_t_r_i_n_g
  2332.            True if the length of _s_t_r_i_n_g is zero.
  2333.       ----nnnn _s_t_r_i_n_g
  2334.       _s_t_r_i_n_g
  2335.            True if the length of _s_t_r_i_n_g is non-zero.
  2336.       _s_t_r_i_n_g_1 ======== _s_t_r_i_n_g_2
  2337.            True if the strings are equal.  ==== may be    used in    place
  2338.            of ========.
  2339.       _s_t_r_i_n_g_1 !!!!==== _s_t_r_i_n_g_2
  2340.            True if the strings are not equal.
  2341.       _s_t_r_i_n_g_1 <<<< _s_t_r_i_n_g_2
  2342.            True if _s_t_r_i_n_g_1 sorts before _s_t_r_i_n_g_2 lexicographically
  2343.            in the current locale.
  2344.       _s_t_r_i_n_g_1 >>>> _s_t_r_i_n_g_2
  2345.            True if _s_t_r_i_n_g_1 sorts after _s_t_r_i_n_g_2 lexicographically
  2346.            in the current locale.
  2347.       _a_r_g_1 OOOOPPPP _a_r_g_2
  2348.            OOOOPPPP is one of ----eeeeqqqq, ----nnnneeee, ----lllltttt, ----lllleeee,    ----ggggtttt, or    ----ggggeeee.  These
  2349.            arithmetic binary operators return true if _a_r_g_1 is
  2350.            equal to, not equal to, less than, less than or equal
  2351.            to, greater than, or greater than or equal to _a_r_g_2,
  2352.            respectively.  _A_r_g_1 and _a_r_g_2 may    be positive or
  2353.            negative    integers.
  2354.  
  2355.      SSSSIIIIMMMMPPPPLLLLEEEE CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
  2356.       When a simple    command    is executed, the shell performs    the
  2357.       following expansions,    assignments, and redirections, from
  2358.       left to right.
  2359.  
  2360.       1.   The words that the parser has marked as variable
  2361.            assignments (those preceding the    command    name) and
  2362.            redirections are    saved for later    processing.
  2363.  
  2364.       2.   The words that are not variable assignments or
  2365.            redirections are    expanded.  If any words    remain after
  2366.            expansion, the first word is taken to be    the name of
  2367.            the command and the remaining words are the arguments.
  2368.  
  2369.       3.   Redirections are    performed as described above under
  2370.  
  2371.  
  2372.  
  2373.      Page 36                         (printed 3/25/99)
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2381.  
  2382.  
  2383.  
  2384.            RRRREEEEDDDDIIIIRRRREEEECCCCTTTTIIIIOOOONNNN.
  2385.  
  2386.       4.   The text    after the ==== in each variable assignment
  2387.            undergoes tilde expansion, parameter expansion, command
  2388.            substitution, arithmetic    expansion, and quote removal
  2389.            before being assigned to    the variable.
  2390.  
  2391.       If no    command    name results, the variable assignments affect
  2392.       the current shell environment.  Otherwise, the variables are
  2393.       added    to the environment of the executed command and do not
  2394.       affect the current shell environment.     If any    of the
  2395.       assignments attempts to assign a value to a readonly
  2396.       variable, an error occurs, and the command exits with    a
  2397.       non-zero status.
  2398.  
  2399.       If no    command    name results, redirections are performed, but
  2400.       do not affect    the current shell environment.    A redirection
  2401.       error    causes the command to exit with    a non-zero status.
  2402.  
  2403.       If there is a    command    name left after    expansion, execution
  2404.       proceeds as described    below.    Otherwise, the command exits.
  2405.       If one of the    expansions contained a command substitution,
  2406.       the exit status of the command is the    exit status of the
  2407.       last command substitution performed.    If there were no
  2408.       command substitutions, the command exits with    a status of
  2409.       zero.
  2410.  
  2411.      CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN
  2412.       After    a command has been split into words, if    it results in
  2413.       a simple command and an optional list    of arguments, the
  2414.       following actions are    taken.
  2415.  
  2416.       If the command name contains no slashes, the shell attempts
  2417.       to locate it.     If there exists a shell function by that
  2418.       name,    that function is invoked as described above in
  2419.       FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS.  If the name does not match a function, the shell
  2420.       searches for it in the list of shell builtins.  If a match
  2421.       is found, that builtin is invoked.
  2422.  
  2423.       If the name is neither a shell function nor a    builtin, and
  2424.       contains no slashes, bbbbaaaasssshhhh searches each element of the PPPPAAAATTTTHHHH
  2425.       for a    directory containing an    executable file    by that    name.
  2426.       BBBBaaaasssshhhh uses a hash table to remember the full file names of
  2427.       executable files (see    hhhhaaaasssshhhh under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  2428.       below).  A full search of the    directories in PPPPAAAATTTTHHHH is
  2429.       performed only if the    command    is not found in    the hash
  2430.       table.  If the search    is unsuccessful, the shell prints an
  2431.       error    message    and returns an exit status of 127.
  2432.  
  2433.       If the search    is successful, or if the command name contains
  2434.       one or more slashes, the shell executes the named program in
  2435.       a separate execution environment.  Argument 0    is set to the
  2436.  
  2437.  
  2438.  
  2439.      Page 37                         (printed 3/25/99)
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2447.  
  2448.  
  2449.  
  2450.       name given, and the remaining    arguments to the command are
  2451.       set to the arguments given, if any.
  2452.  
  2453.       If this execution fails because the file is not in
  2454.       executable format, and the file is not a directory, it is
  2455.       assumed to be    a _s_h_e_l_l    _s_c_r_i_p_t,    a file containing shell
  2456.       commands.  A subshell    is spawned to execute it.  This
  2457.       subshell reinitializes itself, so that the effect is as if a
  2458.       new shell had    been invoked to    handle the script, with    the
  2459.       exception that the locations of commands remembered by the
  2460.       parent (see hhhhaaaasssshhhh below under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS) are
  2461.       retained by the child.
  2462.  
  2463.       If the program is a file beginning with ####!!!!, the remainder of
  2464.       the first line specifies an interpreter for the program.
  2465.       The shell executes the specified interpreter on operating
  2466.       systems that do not handle this executable format
  2467.       themselves.  The arguments to    the interpreter    consist    of a
  2468.       single optional argument following the interpreter name on
  2469.       the first line of the    program, followed by the name of the
  2470.       program, followed by the command arguments, if any.
  2471.  
  2472.      CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  2473.       The shell has    an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which    consists of
  2474.       the following:
  2475.  
  2476.  
  2477.       +o    open files inherited by the shell at invocation,    as
  2478.            modified    by redirections    supplied to the    eeeexxxxeeeecccc builtin
  2479.  
  2480.       +o    the current working directory as    set by ccccdddd, ppppuuuusssshhhhdddd, or
  2481.            ppppooooppppdddd, or    inherited by the shell at invocation
  2482.  
  2483.       +o    the file    creation mode mask as set by uuuummmmaaaasssskkkk or
  2484.            inherited from the shell's parent
  2485.  
  2486.       +o    current traps set by ttttrrrraaaapppp
  2487.  
  2488.       +o    shell parameters    that are set by    variable assignment or
  2489.            with sssseeeetttt    or inherited from the shell's parent in    the
  2490.            environment
  2491.  
  2492.       +o    shell functions defined during execution    or inherited
  2493.            from the    shell's    parent in the environment
  2494.  
  2495.       +o    options enabled at invocation (either by    default    or
  2496.            with command-line arguments) or by sssseeeetttt
  2497.  
  2498.       +o    options enabled by sssshhhhoooopppptttt
  2499.  
  2500.       +o    shell aliases defined with aaaalllliiiiaaaassss
  2501.  
  2502.  
  2503.  
  2504.  
  2505.      Page 38                         (printed 3/25/99)
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2513.  
  2514.  
  2515.  
  2516.       +o    various process IDs, including those of background
  2517.            jobs, the value of $$$$$$$$, and the value of $$$$PPPPPPPPIIIIDDDD
  2518.  
  2519.       When a simple    command    other than a builtin or    shell function
  2520.       is to    be executed, it    is invoked in a    separate execution
  2521.       environment that consists of the following.  Unless
  2522.       otherwise noted, the values are inherited from the shell.
  2523.  
  2524.  
  2525.       +o    the shell's open    files, plus any    modifications and
  2526.            additions specified by redirections to the command
  2527.  
  2528.       +o    the current working directory
  2529.  
  2530.       +o    the file    creation mode mask
  2531.  
  2532.       +o    shell variables marked for export, along    with variables
  2533.            exported    for the    command, passed    in the environment
  2534.  
  2535.       +o    traps caught by the shell are reset to the values the
  2536.            inherited from the shell's parent, and traps ignored by
  2537.            the shell are ignored
  2538.  
  2539.       A command invoked in this separate environment cannot    affect
  2540.       the shell's execution    environment.
  2541.  
  2542.       Command substitution and asynchronous    commands are invoked
  2543.       in a subshell    environment that is a duplicate    of the shell
  2544.       environment, except that traps caught    by the shell are reset
  2545.       to the values    that the shell inherited from its parent at
  2546.       invocation.  Builtin commands    that are invoked as part of a
  2547.       pipeline are also executed in    a subshell environment.
  2548.       Changes made to the subshell environment cannot affect the
  2549.       shell's execution environment.
  2550.  
  2551.      EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  2552.       When a program is invoked it is given    an array of strings
  2553.       called the _e_n_v_i_r_o_n_m_e_n_t.  This    is a list of _n_a_m_e-_v_a_l_u_e    pairs,
  2554.       of the form _n_a_m_e=_v_a_l_u_e.
  2555.  
  2556.       The shell allows you to manipulate the environment in
  2557.       several ways.     On invocation,    the shell scans    its own
  2558.       environment and creates a parameter for each name found,
  2559.       automatically    marking    it for _e_x_p_o_r_t to child processes.
  2560.       Executed commands inherit the    environment.  The eeeexxxxppppoooorrrrtttt and
  2561.       ddddeeeeccccllllaaaarrrreeee ----xxxx commands allow parameters and functions to    be
  2562.       added    to and deleted from the    environment.  If the value of
  2563.       a parameter in the environment is modified, the new value
  2564.       becomes part of the environment, replacing the old.  The
  2565.       environment inherited    by any executed    command    consists of
  2566.       the shell's initial environment, whose values    may be
  2567.       modified in the shell, less any pairs    removed    by the uuuunnnnsssseeeetttt
  2568.  
  2569.  
  2570.  
  2571.      Page 39                         (printed 3/25/99)
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2579.  
  2580.  
  2581.  
  2582.       command, plus    any additions via the eeeexxxxppppoooorrrrtttt and ddddeeeeccccllllaaaarrrreeee ----xxxx
  2583.       commands.
  2584.  
  2585.       The environment for any _s_i_m_p_l_e _c_o_m_m_a_n_d or function may be
  2586.       augmented temporarily    by prefixing it    with parameter
  2587.       assignments, as described above in PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS.  These
  2588.       assignment statements    affect only the    environment seen by
  2589.       that command.
  2590.  
  2591.       If the ----kkkk option is set (see the sssseeeetttt builtin command below),
  2592.       then _a_l_l parameter assignments are placed in the environment
  2593.       for a    command, not just those    that precede the command name.
  2594.  
  2595.       When bbbbaaaasssshhhh invokes an external    command, the variable ____    is set
  2596.       to the full file name    of the command and passed to that
  2597.       command in its environment.
  2598.  
  2599.      EEEEXXXXIIIITTTT SSSSTTTTAAAATTTTUUUUSSSS
  2600.       For the shell's purposes, a command which exits with a zero
  2601.       exit status has succeeded.  An exit status of    zero indicates
  2602.       success.  A non-zero exit status indicates failure.  When a
  2603.       command terminates on    a fatal    signal,    bbbbaaaasssshhhh uses the value of
  2604.       128+ssssiiiiggggnnnnaaaallll as    the exit status.
  2605.  
  2606.       If a command is not found, the child process created to
  2607.       execute it returns a status of 127.  If a command is found
  2608.       but is not executable, the return status is 126.
  2609.  
  2610.       If a command fails because of    an error during    expansion or
  2611.       redirection, the exit    status is greater than zero.
  2612.  
  2613.       Shell    builtin    commands return    a status of 0 (_t_r_u_e) if
  2614.       successful, and non-zero (_f_a_l_s_e) if an error occurs while
  2615.       they execute.    All builtins return an exit status of 2    to
  2616.       indicate incorrect usage.
  2617.  
  2618.       BBBBaaaasssshhhh itself returns the exit status of the last command
  2619.       executed, unless a syntax error occurs, in which case    it
  2620.       exits    with a non-zero    value.    See also the eeeexxxxiiiitttt builtin
  2621.       command below.
  2622.  
  2623.      SSSSIIIIGGGGNNNNAAAALLLLSSSS
  2624.       When bbbbaaaasssshhhh is interactive, in the absence of any traps, it
  2625.       ignores SSSSIIIIGGGGTTTTEEEERRRRMMMM (so that kkkkiiiillllllll    0000 does not kill    an interactive
  2626.       shell), and SSSSIIIIGGGGIIIINNNNTTTT is    caught and handled (so that the    wwwwaaaaiiiitttt
  2627.       builtin is interruptible).  In all cases, bbbbaaaasssshhhh ignores
  2628.       SSSSIIIIGGGGQQQQUUUUIIIITTTT.  If job control is in effect, bbbbaaaasssshhhh ignores SSSSIIIIGGGGTTTTTTTTIIIINNNN,
  2629.       SSSSIIIIGGGGTTTTTTTTOOOOUUUU, and SSSSIIIIGGGGTTTTSSSSTTTTPPPP.
  2630.  
  2631.       Synchronous jobs started by bbbbaaaasssshhhh have    signal handlers    set to
  2632.       the values inherited by the shell from its parent.  When job
  2633.       control is not in effect, asynchronous commands ignore
  2634.  
  2635.  
  2636.  
  2637.      Page 40                         (printed 3/25/99)
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2645.  
  2646.  
  2647.  
  2648.       SSSSIIIIGGGGIIIINNNNTTTT and SSSSIIIIGGGGQQQQUUUUIIIITTTT as    well.  Commands    run as a result    of
  2649.       command substitution ignore the keyboard-generated job
  2650.       control signals SSSSIIIIGGGGTTTTTTTTIIIINNNN, SSSSIIIIGGGGTTTTTTTTOOOOUUUU, and    SSSSIIIIGGGGTTTTSSSSTTTTPPPP.
  2651.  
  2652.       The shell exits by default upon receipt of a SSSSIIIIGGGGHHHHUUUUPPPP.    Before
  2653.       exiting, it resends the SSSSIIIIGGGGHHHHUUUUPPPP to all    jobs, running or
  2654.       stopped.  Stopped jobs are sent SSSSIIIIGGGGCCCCOOOONNNNTTTT to ensure that they
  2655.       receive the SSSSIIIIGGGGHHHHUUUUPPPP.  To prevent the shell from sending the
  2656.       signal to a particular job, it should    be removed from    the
  2657.       jobs table with the ddddiiiissssoooowwwwnnnn builtin (see SSSSHHHHEEEELLLLLLLL    BBBBUUUUIIIILLLLTTTTIIIINNNN
  2658.       CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below) or marked to not receive SSSSIIIIGGGGHHHHUUUUPPPP using    ddddiiiissssoooowwwwnnnn
  2659.       ----hhhh.
  2660.  
  2661.       If the hhhhuuuuppppoooonnnneeeexxxxiiiitttt shell option    has been set with sssshhhhoooopppptttt, bbbbaaaasssshhhh
  2662.       sends    a SSSSIIIIGGGGHHHHUUUUPPPP to all    jobs when an interactive login shell
  2663.       exits.
  2664.  
  2665.       When bbbbaaaasssshhhh receives a signal for which    a trap has been    set
  2666.       while    waiting    for a command to complete, the trap will not
  2667.       be executed until the    command    completes.  When bbbbaaaasssshhhh is
  2668.       waiting for an asynchronous command via the wwwwaaaaiiiitttt builtin,
  2669.       the reception    of a signal for    which a    trap has been set will
  2670.       cause    the wwwwaaaaiiiitttt builtin to return immediately with an exit
  2671.       status greater than 128, immediately after which the trap is
  2672.       executed.
  2673.  
  2674.      JJJJOOOOBBBB CCCCOOOONNNNTTTTRRRROOOOLLLL
  2675.       _J_o_b _c_o_n_t_r_o_l refers to    the ability to selectively stop
  2676.       (_s_u_s_p_e_n_d) the    execution of processes and continue (_r_e_s_u_m_e)
  2677.       their    execution at a later point.  A user typically employs
  2678.       this facility    via an interactive interface supplied jointly
  2679.       by the system's terminal driver and bbbbaaaasssshhhh.
  2680.  
  2681.       The shell associates a _j_o_b with each pipeline.  It keeps a
  2682.       table    of currently executing jobs, which may be listed with
  2683.       the jjjjoooobbbbssss command.  When bbbbaaaasssshhhh starts a    job asynchronously (in
  2684.       the _b_a_c_k_g_r_o_u_n_d), it prints a line that looks like:
  2685.  
  2686.            [1] 25647
  2687.  
  2688.       indicating that this job is job number 1 and that the
  2689.       process ID of    the last process in the    pipeline associated
  2690.       with this job    is 25647.  All of the processes    in a single
  2691.       pipeline are members of the same job.     BBBBaaaasssshhhh uses the _j_o_b
  2692.       abstraction as the basis for job control.
  2693.  
  2694.       To facilitate    the implementation of the user interface to
  2695.       job control, the system maintains the    notion of a _c_u_r_r_e_n_t
  2696.       _t_e_r_m_i_n_a_l _p_r_o_c_e_s_s _g_r_o_u_p _I_D.  Members of this process group
  2697.       (processes whose process group ID is equal to    the current
  2698.       terminal process group ID) receive keyboard-generated
  2699.       signals such as SSSSIIIIGGGGIIIINNNNTTTT.  These processes are said to be in
  2700.  
  2701.  
  2702.  
  2703.      Page 41                         (printed 3/25/99)
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2711.  
  2712.  
  2713.  
  2714.       the _f_o_r_e_g_r_o_u_n_d.  _B_a_c_k_g_r_o_u_n_d processes    are those whose
  2715.       process group    ID differs from    the terminal's;    such processes
  2716.       are immune to    keyboard-generated signals.  Only foreground
  2717.       processes are    allowed    to read    from or    write to the terminal.
  2718.       Background processes which attempt to    read from (write to)
  2719.       the terminal are sent    a SSSSIIIIGGGGTTTTTTTTIIIINNNN ((((SSSSIIIIGGGGTTTTTTTTOOOOUUUU)))) signal by the
  2720.       terminal driver, which, unless caught, suspends the process.
  2721.  
  2722.       If the operating system on which bbbbaaaasssshhhh    is running supports
  2723.       job control, bbbbaaaasssshhhh allows you to use it.  Typing the _s_u_s_p_e_n_d
  2724.       character (typically ^^^^ZZZZ, Control-Z) while a process is
  2725.       running causes that process to be stopped and    returns    you to
  2726.       bbbbaaaasssshhhh.     Typing    the _d_e_l_a_y_e_d _s_u_s_p_e_n_d character (typically ^^^^YYYY,
  2727.       Control-Y) causes the    process    to be stopped when it attempts
  2728.       to read input    from the terminal, and control to be returned
  2729.       to bbbbaaaasssshhhh.  The    user may then manipulate the state of this
  2730.       job, using the bbbbgggg command to continue    it in the background,
  2731.       the ffffgggg command to continue it    in the foreground, or the kkkkiiiillllllll
  2732.       command to kill it.  A ^^^^ZZZZ takes effect immediately, and has
  2733.       the additional side effect of    causing    pending    output and
  2734.       typeahead to be discarded.
  2735.  
  2736.       There    are a number of    ways to    refer to a job in the shell.
  2737.       The character    %%%% introduces a job name.  Job number _n may be
  2738.       referred to as %%%%nnnn.  A    job may    also be    referred to using a
  2739.       prefix of the    name used to start it, or using    a substring
  2740.       that appears in its command line.  For example, %%%%cccceeee refers
  2741.       to a stopped cccceeee job.    If a prefix matches more than one job,
  2742.       bbbbaaaasssshhhh reports an error.  Using    %%%%????cccceeee, on the other hand,
  2743.       refers to any    job containing the string cccceeee in    its command
  2744.       line.     If the    substring matches more than one    job, bbbbaaaasssshhhh
  2745.       reports an error.  The symbols %%%%%%%% and    %%%%++++ refer to the
  2746.       shell's notion of the    _c_u_r_r_e_n_t    _j_o_b, which is the last job
  2747.       stopped while    it was in the foreground or started in the
  2748.       background.  The _p_r_e_v_i_o_u_s _j_o_b    may be referenced using    %%%%----.
  2749.       In output pertaining to jobs (e.g., the output of the    jjjjoooobbbbssss
  2750.       command), the    current    job is always flagged with a ++++,    and
  2751.       the previous job with    a ----.
  2752.  
  2753.       Simply naming    a job can be used to bring it into the
  2754.       foreground:  %%%%1111 is a synonym for ````````ffffgggg    %%%%1111'''''''', bringing job 1
  2755.       from the background into the foreground.  Similarly, ````````%%%%1111
  2756.       &&&&'''''''' resumes job 1 in the background, equivalent to ````````bbbbgggg
  2757.       %%%%1111''''''''.
  2758.  
  2759.       The shell learns immediately whenever    a job changes state.
  2760.       Normally, bbbbaaaasssshhhh waits until it    is about to print a prompt
  2761.       before reporting changes in a    job's status so    as to not
  2762.       interrupt any    other output.  If the ----bbbb option    to the sssseeeetttt
  2763.       builtin command is enabled, bbbbaaaasssshhhh reports such    changes
  2764.       immediately.
  2765.  
  2766.  
  2767.  
  2768.  
  2769.      Page 42                         (printed 3/25/99)
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2777.  
  2778.  
  2779.  
  2780.       If an    attempt    to exit    bbbbaaaasssshhhh is    made while jobs    are stopped,
  2781.       the shell prints a warning message.  The jjjjoooobbbbssss    command    may
  2782.       then be used to inspect their    status.     If a second attempt
  2783.       to exit is made without an intervening command, the shell
  2784.       does not print another warning, and the stopped jobs are
  2785.       terminated.
  2786.  
  2787.      PPPPRRRROOOOMMMMPPPPTTTTIIIINNNNGGGG
  2788.       When executing interactively,    bbbbaaaasssshhhh displays the primary
  2789.       prompt PPPPSSSS1111 when it is    ready to read a    command, and the
  2790.       secondary prompt PPPPSSSS2222 when it needs more input    to complete a
  2791.       command.  BBBBaaaasssshhhh allows    these prompt strings to    be customized
  2792.       by inserting a number    of backslash-escaped special
  2793.       characters that are decoded as follows:
  2794.            \\\\aaaa   an ASCII bell character (07)
  2795.            \\\\dddd   the    date in    "Weekday Month Date" format (e.g.,
  2796.             "Tue May 26")
  2797.            \\\\eeee   an ASCII escape character (033)
  2798.            \\\\hhhh   the    hostname up to the first `.'
  2799.            \\\\HHHH   the    hostname
  2800.            \\\\nnnn   newline
  2801.            \\\\rrrr   carriage return
  2802.            \\\\ssss   the    name of    the shell, the basename    of $$$$0000 (the
  2803.             portion following the final    slash)
  2804.            \\\\tttt   the    current    time in    24-hour    HH:MM:SS format
  2805.            \\\\TTTT   the    current    time in    12-hour    HH:MM:SS format
  2806.            \\\\@@@@   the    current    time in    12-hour    am/pm format
  2807.            \\\\uuuu   the    username of the    current    user
  2808.            \\\\vvvv   the    version    of bbbbaaaasssshhhh    (e.g., 2.00)
  2809.            \\\\VVVV   the    release    of bbbbaaaasssshhhh, version + patchlevel (e.g.,
  2810.             2.00.0)
  2811.            \\\\wwww   the    current    working    directory
  2812.            \\\\WWWW   the    basename of the    current    working    directory
  2813.            \\\\!!!!   the    history    number of this command
  2814.            \\\\####   the    command    number of this command
  2815.            \\\\$$$$   if the effective UID is 0, a ####, otherwise a    $$$$
  2816.            \\\\_n_n_n the    character corresponding    to the octal number
  2817.             _n_n_n
  2818.            \\\\\\\\   a backslash
  2819.            \\\\[[[[   begin a sequence of    non-printing characters, which
  2820.             could be used to embed a terminal control sequence
  2821.             into the prompt
  2822.            \\\\]]]]   end    a sequence of non-printing characters
  2823.  
  2824.       The command number and the history number are    usually
  2825.       different:  the history number of a command is its position
  2826.       in the history list, which may include commands restored
  2827.       from the history file    (see HHHHIIIISSSSTTTTOOOORRRRYYYY below), while the command
  2828.       number is the    position in the    sequence of commands executed
  2829.       during the current shell session.  After the string is
  2830.       decoded, it is expanded via parameter    expansion, command
  2831.       substitution,    arithmetic expansion, string expansion,    and
  2832.  
  2833.  
  2834.  
  2835.      Page 43                         (printed 3/25/99)
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2843.  
  2844.  
  2845.  
  2846.       quote    removal, subject to the    value of the pppprrrroooommmmppppttttvvvvaaaarrrrssss    shell
  2847.       option (see the description of the sssshhhhoooopppptttt command under SSSSHHHHEEEELLLLLLLL
  2848.       BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).
  2849.  
  2850.      RRRREEEEAAAADDDDLLLLIIIINNNNEEEE
  2851.       This is the library that handles reading input when using an
  2852.       interactive shell, unless the    --------nnnnooooeeeeddddiiiittttiiiinnnngggg option is given at
  2853.       shell    invocation.  By    default, the line editing commands are
  2854.       similar to those of emacs.  A    vi-style line editing
  2855.       interface is also available.    To turn    off line editing after
  2856.       the shell is running,    use the    ++++oooo eeeemmmmaaaaccccssss or ++++oooo vvvviiii options to
  2857.       the sssseeeetttt builtin (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).
  2858.  
  2859.     RRRReeeeaaaaddddlllliiiinnnneeee NNNNoooottttaaaattttiiiioooonnnn
  2860.       In this section, the emacs-style notation is used to denote
  2861.       keystrokes.  Control keys are    denoted    by C-_k_e_y, e.g.,    C-n
  2862.       means    Control-N.  Similarly, _m_e_t_a keys are denoted by    M-_k_e_y,
  2863.       so M-x means Meta-X.    (On keyboards without a    _m_e_t_a key, M-_x
  2864.       means    ESC _x, i.e., press the Escape key then the _x key.
  2865.       This makes ESC the _m_e_t_a _p_r_e_f_i_x.  The combination M-C-_x means
  2866.       ESC-Control-_x, or press the Escape key then hold the Control
  2867.       key while pressing the _x key.)
  2868.  
  2869.       Readline commands may    be given numeric _a_r_g_u_m_e_n_t_s, which
  2870.       normally act as a repeat count.  Sometimes, however, it is
  2871.       the sign of the argument that    is significant.     Passing a
  2872.       negative argument to a command that acts in the forward
  2873.       direction (e.g., kkkkiiiillllllll----lllliiiinnnneeee) causes that command to act in a
  2874.       backward direction. Commands whose behavior with arguments
  2875.       deviates from    this are noted below.
  2876.  
  2877.       When a command is described as _k_i_l_l_i_n_g text, the text
  2878.       deleted is saved for possible    future retrieval (_y_a_n_k_i_n_g).
  2879.       The killed text is saved in a    _k_i_l_l _r_i_n_g.  Consecutive    kills
  2880.       cause    the text to be accumulated into    one unit, which    can be
  2881.       yanked all at    once. Commands which do    not kill text separate
  2882.       the chunks of    text on    the kill ring.
  2883.  
  2884.     RRRReeeeaaaaddddlllliiiinnnneeee IIIInnnniiiittttiiiiaaaalllliiiizzzzaaaattttiiiioooonnnn
  2885.       Readline is customized by putting commands in    an
  2886.       initialization file (the _i_n_p_u_t_r_c file).  The name of this
  2887.       file is taken    from the value of the IIIINNNNPPPPUUUUTTTTRRRRCCCC variable.     If
  2888.       that variable    is unset, the default is ~/._i_n_p_u_t_r_c.  When a
  2889.       program which    uses the readline library starts up, the
  2890.       initialization file is read, and the key bindings and
  2891.       variables are    set.  There are    only a few basic constructs
  2892.       allowed in the readline initialization file.    Blank lines
  2893.       are ignored.    Lines beginning    with a #### are comments.    Lines
  2894.       beginning with a $$$$ indicate conditional constructs.  Other
  2895.       lines    denote key bindings and    variable settings.
  2896.  
  2897.       The default key-bindings may be changed with an _i_n_p_u_t_r_c
  2898.  
  2899.  
  2900.  
  2901.      Page 44                         (printed 3/25/99)
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2909.  
  2910.  
  2911.  
  2912.       file.     Other programs    that use this library may add their
  2913.       own commands and bindings.
  2914.  
  2915.       For example, placing
  2916.  
  2917.            M-Control-u: universal-argument
  2918.       or
  2919.            C-Meta-u: universal-argument
  2920.       into the _i_n_p_u_t_r_c would make M-C-u execute the    readline
  2921.       command _u_n_i_v_e_r_s_a_l-_a_r_g_u_m_e_n_t.
  2922.  
  2923.       The following    symbolic character names are recognized:
  2924.       _R_U_B_O_U_T, _D_E_L, _E_S_C, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and
  2925.       _T_A_B.    In addition to command names, readline allows keys to
  2926.       be bound to a    string that is inserted    when the key is
  2927.       pressed (a _m_a_c_r_o).
  2928.  
  2929.     RRRReeeeaaaaddddlllliiiinnnneeee KKKKeeeeyyyy BBBBiiiinnnnddddiiiinnnnggggssss
  2930.       The syntax for controlling key bindings in the _i_n_p_u_t_r_c file
  2931.       is simple.  All that is required is the name of the command
  2932.       or the text of a macro and a key sequence to which it    should
  2933.       be bound. The    name may be specified in one of    two ways:  as
  2934.       a symbolic key name, possibly    with _M_e_t_a- or _C_o_n_t_r_o_l-
  2935.       prefixes, or as a key    sequence.  When    using the form
  2936.       kkkkeeeeyyyynnnnaaaammmmeeee:_f_u_n_c_t_i_o_n-_n_a_m_e    or _m_a_c_r_o, _k_e_y_n_a_m_e is the name of a key
  2937.       spelled out in English.  For example:
  2938.  
  2939.            Control-u: universal-argument
  2940.            Meta-Rubout: backward-kill-word
  2941.            Control-o: "> output"
  2942.  
  2943.       In the above example,    _C-_u is bound to    the function
  2944.       uuuunnnniiiivvvveeeerrrrssssaaaallll----aaaarrrrgggguuuummmmeeeennnntttt, _M-_D_E_L is bound to    the function
  2945.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----kkkkiiiillllllll----wwwwoooorrrrdddd, and _C-_o is bound to run the macro
  2946.       expressed on the right hand side (that is, to    insert the
  2947.       text > _o_u_t_p_u_t    into the line).
  2948.  
  2949.       In the second    form, """"kkkkeeeeyyyysssseeeeqqqq"""":_f_u_n_c_t_i_o_n-_n_a_m_e or    _m_a_c_r_o, kkkkeeeeyyyysssseeeeqqqq
  2950.       differs from kkkkeeeeyyyynnnnaaaammmmeeee above in    that strings denoting an
  2951.       entire key sequence may be specified by placing the sequence
  2952.       within double    quotes.     Some GNU Emacs    style key escapes can
  2953.       be used, as in the following example.
  2954.  
  2955.            "\C-u": universal-argument
  2956.            "\C-x\C-r": re-read-init-file
  2957.            "\e[11~": "Function Key 1"
  2958.  
  2959.       In this example, _C-_u is again    bound to the function
  2960.       uuuunnnniiiivvvveeeerrrrssssaaaallll----aaaarrrrgggguuuummmmeeeennnntttt.  _C-_x _C-_r is bound    to the function
  2961.       rrrreeee----rrrreeeeaaaadddd----iiiinnnniiiitttt----ffffiiiilllleeee, and _E_S_C [ _1 _1 ~ is    bound to insert    the
  2962.       text FFFFuuuunnnnccccttttiiiioooonnnn    KKKKeeeeyyyy 1111.    The full set of    GNU Emacs style    escape
  2963.       sequences is
  2964.  
  2965.  
  2966.  
  2967.      Page 45                         (printed 3/25/99)
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  2975.  
  2976.  
  2977.  
  2978.            \\\\CCCC----  control prefix
  2979.            \\\\MMMM----  meta prefix
  2980.            \\\\eeee   an escape character
  2981.            \\\\\\\\   backslash
  2982.            \\\\""""   literal "
  2983.            \\\\''''   literal '
  2984.  
  2985.       In addition to the GNU Emacs style escape sequences, a
  2986.       second set of    backslash escapes is available:
  2987.            \\\\aaaa   alert (bell)
  2988.            \\\\bbbb   backspace
  2989.            \\\\dddd   delete
  2990.            \\\\ffff   form feed
  2991.            \\\\nnnn   newline
  2992.            \\\\rrrr   carriage return
  2993.            \\\\tttt   horizontal tab
  2994.            \\\\vvvv   vertical tab
  2995.            \\\\_n_n_n the    character whose    ASCII code is the octal    value
  2996.             _n_n_n    (one to    three digits)
  2997.            \\\\xxxx_n_n_n
  2998.             the    character whose    ASCII code is the hexadecimal
  2999.             value _n_n_n (one to three digits)
  3000.  
  3001.       When entering    the text of a macro, single or double quotes
  3002.       must be used to indicate a macro definition.    Unquoted text
  3003.       is assumed to    be a function name.  In    the macro body,    the
  3004.       backslash escapes described above are    expanded.  Backslash
  3005.       will quote any other character in the    macro text, including
  3006.       " and    '.
  3007.  
  3008.       BBBBaaaasssshhhh allows the current readline key bindings    to be
  3009.       displayed or modified    with the bbbbiiiinnnndddd builtin command.    The
  3010.       editing mode may be switched during interactive use by using
  3011.       the ----oooo option    to the sssseeeetttt builtin command (see    SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN
  3012.       CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).
  3013.  
  3014.     RRRReeeeaaaaddddlllliiiinnnneeee VVVVaaaarrrriiiiaaaabbbblllleeeessss
  3015.       Readline has variables that can be used to further customize
  3016.       its behavior.     A variable may    be set in the _i_n_p_u_t_r_c file
  3017.       with a statement of the form
  3018.  
  3019.            sssseeeetttt _v_a_r_i_a_b_l_e-_n_a_m_e _v_a_l_u_e
  3020.  
  3021.       Except where noted, readline variables can take the values
  3022.       OOOOnnnn or    OOOOffffffff.  The variables and    their default values are:
  3023.  
  3024.       bbbbeeeellllllll----ssssttttyyyylllleeee ((((aaaauuuuddddiiiibbbblllleeee))))
  3025.            Controls    what happens when readline wants to ring the
  3026.            terminal    bell.  If set to nnnnoooonnnneeee, readline    never rings
  3027.            the bell.  If set to vvvviiiissssiiiibbbblllleeee, readline uses a visible
  3028.            bell if one is available.  If set to aaaauuuuddddiiiibbbblllleeee, readline
  3029.            attempts    to ring    the terminal's bell.
  3030.  
  3031.  
  3032.  
  3033.      Page 46                         (printed 3/25/99)
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3041.  
  3042.  
  3043.  
  3044.       ccccoooommmmmmmmeeeennnntttt----bbbbeeeeggggiiiinnnn    ((((````````####''''''''))))
  3045.            The string that is inserted when    the rrrreeeeaaaaddddlllliiiinnnneeee
  3046.            iiiinnnnsssseeeerrrrtttt----ccccoooommmmmmmmeeeennnntttt command is executed.  This command is
  3047.            bound to    MMMM----#### in emacs mode and to #### in vi command mode.
  3048.       ccccoooommmmpppplllleeeettttiiiioooonnnn----iiiiggggnnnnoooorrrreeee----ccccaaaasssseeee ((((OOOOffffffff))))
  3049.            If set to OOOOnnnn, readline performs filename    matching and
  3050.            completion in a case-insensitive    fashion.
  3051.       ccccoooommmmpppplllleeeettttiiiioooonnnn----qqqquuuueeeerrrryyyy----iiiitttteeeemmmmssss ((((111100000000))))
  3052.            This determines when the    user is    queried    about viewing
  3053.            the number of possible completions generated by the
  3054.            ppppoooossssssssiiiibbbblllleeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss command.  It may be    set to any
  3055.            integer value greater than or equal to zero.  If    the
  3056.            number of possible completions is greater than or equal
  3057.            to the value of this variable, the user is asked
  3058.            whether or not he wishes    to view    them; otherwise    they
  3059.            are simply listed on the    terminal.
  3060.       ccccoooonnnnvvvveeeerrrrtttt----mmmmeeeettttaaaa ((((OOOOnnnn))))
  3061.            If set to OOOOnnnn, readline will convert characters with the
  3062.            eighth bit set to an ASCII key sequence by stripping
  3063.            the eighth bit and prepending an    escape character (in
  3064.            effect, using escape as the _m_e_t_a    _p_r_e_f_i_x).
  3065.       ddddiiiissssaaaabbbblllleeee----ccccoooommmmpppplllleeeettttiiiioooonnnn ((((OOOOffffffff))))
  3066.            If set to OOOOnnnn, readline will inhibit word    completion.
  3067.            Completion characters will be inserted into the line as
  3068.            if they had been    mapped to sssseeeellllffff----iiiinnnnsssseeeerrrrtttt.
  3069.       eeeeddddiiiittttiiiinnnngggg----mmmmooooddddeeee ((((eeeemmmmaaaaccccssss))))
  3070.            Controls    whether    readline begins    with a set of key
  3071.            bindings    similar    to _e_m_a_c_s or _v_i.     eeeeddddiiiittttiiiinnnngggg----mmmmooooddddeeee can be
  3072.            set to either eeeemmmmaaaaccccssss or vvvviiii.
  3073.       eeeennnnaaaabbbblllleeee----kkkkeeeeyyyyppppaaaadddd    ((((OOOOffffffff))))
  3074.            When set    to OOOOnnnn, readline    will try to enable the
  3075.            application keypad when it is called.  Some systems
  3076.            need this to enable the arrow keys.
  3077.       eeeexxxxppppaaaannnndddd----ttttiiiillllddddeeee ((((OOOOffffffff))))
  3078.            If set to oooonnnn, tilde expansion is    performed when
  3079.            readline    attempts word completion.
  3080.       hhhhoooorrrriiiizzzzoooonnnnttttaaaallll----ssssccccrrrroooollllllll----mmmmooooddddeeee ((((OOOOffffffff))))
  3081.            When set    to OOOOnnnn, makes readline use a single line    for
  3082.            display,    scrolling the input horizontally on a single
  3083.            screen line when    it becomes longer than the screen
  3084.            width rather than wrapping to a new line.
  3085.       iiiinnnnppppuuuutttt----mmmmeeeettttaaaa ((((OOOOffffffff))))
  3086.            If set to OOOOnnnn, readline will enable eight-bit input
  3087.            (that is, it will not strip the high bit    from the
  3088.            characters it reads), regardless    of what    the terminal
  3089.            claims it can support.  The name    mmmmeeeettttaaaa----ffffllllaaaagggg is a synonym
  3090.            for this    variable.
  3091.       iiiisssseeeeaaaarrrrcccchhhh----tttteeeerrrrmmmmiiiinnnnaaaattttoooorrrrssss ((((````````CCCC----[[[[CCCC----JJJJ''''''''))))
  3092.            The string of characters    that should terminate an
  3093.            incremental search without subsequently executing the
  3094.            character as a command.    If this    variable has not been
  3095.            given a value, the characters _E_S_C and _C-_J will
  3096.  
  3097.  
  3098.  
  3099.      Page 47                         (printed 3/25/99)
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3107.  
  3108.  
  3109.  
  3110.            terminate an incremental    search.
  3111.       kkkkeeeeyyyymmmmaaaapppp ((((eeeemmmmaaaaccccssss))))
  3112.            Set the current readline    keymap.     The set of valid
  3113.            keymap names is _e_m_a_c_s, _e_m_a_c_s-_s_t_a_n_d_a_r_d, _e_m_a_c_s-_m_e_t_a,
  3114.            _e_m_a_c_s-_c_t_l_x, _v_i, _v_i-_c_o_m_m_a_n_d, and _v_i-_i_n_s_e_r_t.  _v_i is
  3115.            equivalent to _v_i-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent to
  3116.            _e_m_a_c_s-_s_t_a_n_d_a_r_d.    The default value is _e_m_a_c_s; the    value
  3117.            of eeeeddddiiiittttiiiinnnngggg----mmmmooooddddeeee also affects the    default    keymap.
  3118.       mmmmaaaarrrrkkkk----ddddiiiirrrreeeeccccttttoooorrrriiiieeeessss ((((OOOOnnnn))))
  3119.            If set to OOOOnnnn, completed directory names have a slash
  3120.            appended.
  3121.       mmmmaaaarrrrkkkk----mmmmooooddddiiiiffffiiiieeeedddd----lllliiiinnnneeeessss ((((OOOOffffffff))))
  3122.            If set to OOOOnnnn, history lines that    have been modified are
  3123.            displayed with a    preceding asterisk (****).
  3124.       oooouuuuttttppppuuuutttt----mmmmeeeettttaaaa ((((OOOOffffffff))))
  3125.            If set to OOOOnnnn, readline will display characters with the
  3126.            eighth bit set directly rather than as a    meta-prefixed
  3127.            escape sequence.
  3128.       pppprrrriiiinnnntttt----ccccoooommmmpppplllleeeettttiiiioooonnnnssss----hhhhoooorrrriiiizzzzoooonnnnttttaaaallllllllyyyy ((((OOOOffffffff))))
  3129.            If set to OOOOnnnn, readline will display completions with
  3130.            matches sorted horizontally in alphabetical order,
  3131.            rather than down    the screen.
  3132.       sssshhhhoooowwww----aaaallllllll----iiiiffff----aaaammmmbbbbiiiigggguuuuoooouuuussss    ((((OOOOffffffff))))
  3133.            This alters the default behavior    of the completion
  3134.            functions.  If set to oooonnnn, words which have more than
  3135.            one possible completion cause the matches to be listed
  3136.            immediately instead of ringing the bell.
  3137.       vvvviiiissssiiiibbbblllleeee----ssssttttaaaattttssss    ((((OOOOffffffff))))
  3138.            If set to OOOOnnnn, a character denoting a file's type    as
  3139.            reported    by _s_t_a_t(2) is appended to the filename when
  3140.            listing possible    completions.
  3141.  
  3142.     RRRReeeeaaaaddddlllliiiinnnneeee CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll CCCCoooonnnnssssttttrrrruuuuccccttttssss
  3143.       Readline implements a    facility similar in spirit to the
  3144.       conditional compilation features of the C preprocessor which
  3145.       allows key bindings and variable settings to be performed as
  3146.       the result of    tests.    There are four parser directives used.
  3147.  
  3148.       $$$$iiiiffff  The $$$$iiiiffff construct allows    bindings to be made based on
  3149.            the editing mode, the terminal being used, or the
  3150.            application using readline.  The    text of    the test
  3151.            extends to the end of the line; no characters are
  3152.            required    to isolate it.
  3153.  
  3154.            mmmmooooddddeeee The    mmmmooooddddeeee==== form of the $$$$iiiiffff directive    is used    to
  3155.             test whether readline is in    emacs or vi mode.
  3156.             This may be    used in    conjunction with the sssseeeetttt
  3157.             kkkkeeeeyyyymmmmaaaapppp command, for    instance, to set bindings in
  3158.             the    _e_m_a_c_s-_s_t_a_n_d_a_r_d and _e_m_a_c_s-_c_t_l_x keymaps only if
  3159.             readline is    starting out in    emacs mode.
  3160.  
  3161.            tttteeeerrrrmmmm The    tttteeeerrrrmmmm==== form may be used to include terminal-
  3162.  
  3163.  
  3164.  
  3165.      Page 48                         (printed 3/25/99)
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3173.  
  3174.  
  3175.  
  3176.             specific key bindings, perhaps to bind the key
  3177.             sequences output by    the terminal's function    keys.
  3178.             The    word on    the right side of the ====    is tested
  3179.             against the    both full name of the terminal and the
  3180.             portion of the terminal name before    the first ----.
  3181.             This allows    _s_u_n to match both _s_u_n and _s_u_n-_c_m_d, for
  3182.             instance.
  3183.  
  3184.            aaaapppppppplllliiiiccccaaaattttiiiioooonnnn
  3185.             The    aaaapppppppplllliiiiccccaaaattttiiiioooonnnn construct is used to include
  3186.             application-specific settings.  Each program using
  3187.             the    readline library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e,
  3188.             and    an initialization file can test    for a
  3189.             particular value.  This could be used to bind key
  3190.             sequences to functions useful for a    specific
  3191.             program.  For instance, the    following command adds
  3192.             a key sequence that    quotes the current or previous
  3193.             word in Bash:
  3194.  
  3195.             $$$$iiiiffff    Bash
  3196.             # Quote the    current    or previous word
  3197.             "\C-xq": "\eb\"\ef\""
  3198.             $$$$eeeennnnddddiiiiffff
  3199.  
  3200.       $$$$eeeennnnddddiiiiffff
  3201.            This command, as    seen in    the previous example,
  3202.            terminates an $$$$iiiiffff command.
  3203.  
  3204.       $$$$eeeellllsssseeee
  3205.            Commands    in this    branch of the $$$$iiiiffff directive are
  3206.            executed    if the test fails.
  3207.  
  3208.       $$$$iiiinnnncccclllluuuuddddeeee
  3209.            This directive takes a single filename as an argument
  3210.            and reads commands and bindings from that file.    For
  3211.            example,    the following directive    would read
  3212.            /_e_t_c/_i_n_p_u_t_r_c:
  3213.  
  3214.            $$$$iiiinnnncccclllluuuuddddeeee     /_e_t_c/_i_n_p_u_t_r_c
  3215.  
  3216.     SSSSeeeeaaaarrrrcccchhhhiiiinnnngggg
  3217.       Readline provides commands for searching through the command
  3218.       history (see HHHHIIIISSSSTTTTOOOORRRRYYYY below) for lines    containing a specified
  3219.       string.  There are two search    modes:    _i_n_c_r_e_m_e_n_t_a_l and    _n_o_n-
  3220.       _i_n_c_r_e_m_e_n_t_a_l.
  3221.  
  3222.       Incremental searches begin before the    user has finished
  3223.       typing the search string.  As    each character of the search
  3224.       string is typed, readline displays the next entry from the
  3225.       history matching the string typed so far.  An    incremental
  3226.       search requires only as many characters as needed to find
  3227.       the desired history entry.  The characters present in    the
  3228.  
  3229.  
  3230.  
  3231.      Page 49                         (printed 3/25/99)
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3239.  
  3240.  
  3241.  
  3242.       value    of the _i_s_e_a_r_c_h-_t_e_r_m_i_n_a_t_o_r_s variable are    used to
  3243.       terminate an incremental search.  If that variable has not
  3244.       been assigned    a value    the Escape and Control-J characters
  3245.       will terminate an incremental    search.     Control-G will    abort
  3246.       an incremental search    and restore the    original line.    When
  3247.       the search is    terminated, the    history    entry containing the
  3248.       search string    becomes    the current line.  To find other
  3249.       matching entries in the history list,    type Control-S or
  3250.       Control-R as appropriate.  This will search backward or
  3251.       forward in the history for the next entry matching the
  3252.       search string    typed so far.  Any other key sequence bound to
  3253.       a readline command will terminate the    search and execute
  3254.       that command.     For instance, a _n_e_w_l_i_n_e will terminate    the
  3255.       search and accept the    line, thereby executing    the command
  3256.       from the history list.
  3257.  
  3258.       Non-incremental searches read    the entire search string
  3259.       before starting to search for    matching history lines.     The
  3260.       search string    may be typed by    the user or be part of the
  3261.       contents of the current line.
  3262.  
  3263.     RRRReeeeaaaaddddlllliiiinnnneeee CCCCoooommmmmmmmaaaannnndddd NNNNaaaammmmeeeessss
  3264.       The following    is a list of the names of the commands and the
  3265.       default key sequences    to which they are bound.  Command
  3266.       names    without    an accompanying    key sequence are unbound by
  3267.       default.
  3268.  
  3269.     CCCCoooommmmmmmmaaaannnnddddssss ffffoooorrrr MMMMoooovvvviiiinnnngggg
  3270.       bbbbeeeeggggiiiinnnnnnnniiiinnnngggg----ooooffff----lllliiiinnnneeee ((((CCCC----aaaa))))
  3271.            Move to the start of the    current    line.
  3272.       eeeennnndddd----ooooffff----lllliiiinnnneeee ((((CCCC----eeee))))
  3273.            Move to the end of the line.
  3274.       ffffoooorrrrwwwwaaaarrrrdddd----cccchhhhaaaarrrr ((((CCCC----ffff))))
  3275.            Move forward a character.
  3276.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----cccchhhhaaaarrrr    ((((CCCC----bbbb))))
  3277.            Move back a character.
  3278.       ffffoooorrrrwwwwaaaarrrrdddd----wwwwoooorrrrdddd ((((MMMM----ffff))))
  3279.            Move forward to the end of the next word.  Words    are
  3280.            composed    of alphanumeric    characters (letters and
  3281.            digits).
  3282.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----wwwwoooorrrrdddd    ((((MMMM----bbbb))))
  3283.            Move back to the    start of this, or the previous,    word.
  3284.            Words are composed of alphanumeric characters (letters
  3285.            and digits).
  3286.       cccclllleeeeaaaarrrr----ssssccccrrrreeeeeeeennnn ((((CCCC----llll))))
  3287.            Clear the screen    leaving    the current line at the    top of
  3288.            the screen.  With an argument, refresh the current line
  3289.            without clearing    the screen.
  3290.       rrrreeeeddddrrrraaaawwww----ccccuuuurrrrrrrreeeennnntttt----lllliiiinnnneeee
  3291.            Refresh the current line.
  3292.  
  3293.     CCCCoooommmmmmmmaaaannnnddddssss ffffoooorrrr MMMMaaaannnniiiippppuuuullllaaaattttiiiinnnngggg tttthhhheeee HHHHiiiissssttttoooorrrryyyy
  3294.  
  3295.  
  3296.  
  3297.      PPPPaaaaggggeeee 55550000                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3305.  
  3306.  
  3307.  
  3308.       aaaacccccccceeeepppptttt----lllliiiinnnneeee ((((NNNNeeeewwwwlllliiiinnnneeee,,,,    RRRReeeettttuuuurrrrnnnn))))
  3309.            Accept the line regardless of where the cursor is.  If
  3310.            this line is non-empty, add it to the history list
  3311.            according to the    state of the HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL variable.  If
  3312.            the line    is a modified history line, then restore the
  3313.            history line to its original state.
  3314.       pppprrrreeeevvvviiiioooouuuussss----hhhhiiiissssttttoooorrrryyyy ((((CCCC----pppp))))
  3315.            Fetch the previous command from the history list,
  3316.            moving back in the list.
  3317.       nnnneeeexxxxtttt----hhhhiiiissssttttoooorrrryyyy ((((CCCC----nnnn))))
  3318.            Fetch the next command from the history list, moving
  3319.            forward in the list.
  3320.       bbbbeeeeggggiiiinnnnnnnniiiinnnngggg----ooooffff----hhhhiiiissssttttoooorrrryyyy ((((MMMM----<<<<))))
  3321.            Move to the first line in the history.
  3322.       eeeennnndddd----ooooffff----hhhhiiiissssttttoooorrrryyyy ((((MMMM---->>>>))))
  3323.            Move to the end of the input history, i.e., the line
  3324.            currently being entered.
  3325.       rrrreeeevvvveeeerrrrsssseeee----sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy ((((CCCC----rrrr))))
  3326.            Search backward starting    at the current line and    moving
  3327.            `up' through the    history    as necessary.  This is an
  3328.            incremental search.
  3329.       ffffoooorrrrwwwwaaaarrrrdddd----sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy ((((CCCC----ssss))))
  3330.            Search forward starting at the current line and moving
  3331.            `down' through the history as necessary.     This is an
  3332.            incremental search.
  3333.       nnnnoooonnnn----iiiinnnnccccrrrreeeemmmmeeeennnnttttaaaallll----rrrreeeevvvveeeerrrrsssseeee----sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy ((((MMMM----pppp))))
  3334.            Search backward through the history starting at the
  3335.            current line using a non-incremental search for a
  3336.            string supplied by the user.
  3337.       nnnnoooonnnn----iiiinnnnccccrrrreeeemmmmeeeennnnttttaaaallll----ffffoooorrrrwwwwaaaarrrrdddd----sssseeeeaaaarrrrcccchhhh----hhhhiiiissssttttoooorrrryyyy ((((MMMM----nnnn))))
  3338.            Search forward through the history using    a non-
  3339.            incremental search for a    string supplied    by the user.
  3340.       hhhhiiiissssttttoooorrrryyyy----sssseeeeaaaarrrrcccchhhh----ffffoooorrrrwwwwaaaarrrrdddd
  3341.            Search forward through the history for the string of
  3342.            characters between the start of the current line    and
  3343.            the current cursor position (the    _p_o_i_n_t).     This is a
  3344.            non-incremental search.
  3345.       hhhhiiiissssttttoooorrrryyyy----sssseeeeaaaarrrrcccchhhh----bbbbaaaacccckkkkwwwwaaaarrrrdddd
  3346.            Search backward through the history for the string of
  3347.            characters between the start of the current line    and
  3348.            the point.  This    is a non-incremental search.
  3349.       yyyyaaaannnnkkkk----nnnntttthhhh----aaaarrrrgggg ((((MMMM----CCCC----yyyy))))
  3350.            Insert the first    argument to the    previous command
  3351.            (usually    the second word    on the previous    line) at point
  3352.            (the current cursor position).  With an argument    _n,
  3353.            insert the _nth word from    the previous command (the
  3354.            words in    the previous command begin with    word 0).  A
  3355.            negative    argument inserts the _nth word from the end of
  3356.            the previous command.
  3357.       yyyyaaaannnnkkkk----llllaaaasssstttt----aaaarrrrgggg    ((((MMMM----....,,,, MMMM----____))))
  3358.            Insert the last argument    to the previous    command    (the
  3359.            last word of the    previous history entry).  With an
  3360.  
  3361.  
  3362.  
  3363.      Page 51                         (printed 3/25/99)
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3371.  
  3372.  
  3373.  
  3374.            argument, behave    exactly    like yyyyaaaannnnkkkk----nnnntttthhhh----aaaarrrrgggg.  Successive
  3375.            calls to    yyyyaaaannnnkkkk----llllaaaasssstttt----aaaarrrrgggg move back    through    the history
  3376.            list, inserting the last    argument of each line in turn.
  3377.       sssshhhheeeellllllll----eeeexxxxppppaaaannnndddd----lllliiiinnnneeee ((((MMMM----CCCC----eeee))))
  3378.            Expand the line as the shell does.  This    performs alias
  3379.            and history expansion as    well as    all of the shell word
  3380.            expansions.  See    HHHHIIIISSSSTTTTOOOORRRRYYYY    EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN below    for a
  3381.            description of history expansion.
  3382.       hhhhiiiissssttttoooorrrryyyy----eeeexxxxppppaaaannnndddd----lllliiiinnnneeee ((((MMMM----^^^^))))
  3383.            Perform history expansion on the    current    line.  See
  3384.            HHHHIIIISSSSTTTTOOOORRRRYYYY EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN below for a description of history
  3385.            expansion.
  3386.       mmmmaaaaggggiiiicccc----ssssppppaaaacccceeee
  3387.            Perform history expansion on the    current    line and
  3388.            insert a    space.    See HHHHIIIISSSSTTTTOOOORRRRYYYY EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN below for    a
  3389.            description of history expansion.
  3390.       aaaalllliiiiaaaassss----eeeexxxxppppaaaannnndddd----lllliiiinnnneeee
  3391.            Perform alias expansion on the current line.  See
  3392.            AAAALLLLIIIIAAAASSSSEEEESSSS above for a description of alias    expansion.
  3393.       hhhhiiiissssttttoooorrrryyyy----aaaannnndddd----aaaalllliiiiaaaassss----eeeexxxxppppaaaannnndddd----lllliiiinnnneeee
  3394.            Perform history and alias expansion on the current
  3395.            line.
  3396.       iiiinnnnsssseeeerrrrtttt----llllaaaasssstttt----aaaarrrrgggguuuummmmeeeennnntttt ((((MMMM----....,,,, MMMM----____))))
  3397.            A synonym for yyyyaaaannnnkkkk----llllaaaasssstttt----aaaarrrrgggg.
  3398.       ooooppppeeeerrrraaaatttteeee----aaaannnndddd----ggggeeeetttt----nnnneeeexxxxtttt ((((CCCC----oooo))))
  3399.            Accept the current line for execution and fetch the
  3400.            next line relative to the current line from the history
  3401.            for editing.  Any argument is ignored.
  3402.  
  3403.     CCCCoooommmmmmmmaaaannnnddddssss ffffoooorrrr CCCChhhhaaaannnnggggiiiinnnngggg TTTTeeeexxxxtttt
  3404.       ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr ((((CCCC----dddd))))
  3405.            Delete the character under the cursor.  If point    is at
  3406.            the beginning of    the line, there    are no characters in
  3407.            the line, and the last character    typed was not bound to
  3408.            ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr, then return    EEEEOOOOFFFF.
  3409.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr ((((RRRRuuuubbbboooouuuutttt))))
  3410.            Delete the character behind the cursor.    When given a
  3411.            numeric argument, save the deleted text on the kill
  3412.            ring.
  3413.       ffffoooorrrrwwwwaaaarrrrdddd----bbbbaaaacccckkkkwwwwaaaarrrrdddd----ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr
  3414.            Delete the character under the cursor, unless the
  3415.            cursor is at the    end of the line, in which case the
  3416.            character behind    the cursor is deleted.    By default,
  3417.            this is not bound to a key.
  3418.       qqqquuuuooootttteeeedddd----iiiinnnnsssseeeerrrrtttt    ((((CCCC----qqqq,,,, CCCC----vvvv))))
  3419.            Add the next character typed to the line    verbatim.
  3420.            This is how to insert characters    like CCCC----qqqq, for example.
  3421.       ttttaaaabbbb----iiiinnnnsssseeeerrrrtttt ((((CCCC----vvvv TTTTAAAABBBB))))
  3422.            Insert a    tab character.
  3423.       sssseeeellllffff----iiiinnnnsssseeeerrrrtttt ((((aaaa,,,, bbbb,,,, AAAA,,,,    1111,,,, !!!!,,,, ............))))
  3424.            Insert the character typed.
  3425.       ttttrrrraaaannnnssssppppoooosssseeee----cccchhhhaaaarrrrssss ((((CCCC----tttt))))
  3426.  
  3427.  
  3428.  
  3429.      Page 52                         (printed 3/25/99)
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3437.  
  3438.  
  3439.  
  3440.            Drag the    character before point forward over the
  3441.            character at point.  Point moves    forward    as well.  If
  3442.            point is    at the end of the line,    then transpose the two
  3443.            characters before point.     Negative arguments don't
  3444.            work.
  3445.       ttttrrrraaaannnnssssppppoooosssseeee----wwwwoooorrrrddddssss ((((MMMM----tttt))))
  3446.            Drag the    word behind the    cursor past the    word in    front
  3447.            of the cursor moving the    cursor over that word as well.
  3448.       uuuuppppccccaaaasssseeee----wwwwoooorrrrdddd ((((MMMM----uuuu))))
  3449.            Uppercase the current (or following) word.  With    a
  3450.            negative    argument, uppercase the    previous word, but do
  3451.            not move    point.
  3452.       ddddoooowwwwnnnnccccaaaasssseeee----wwwwoooorrrrdddd    ((((MMMM----llll))))
  3453.            Lowercase the current (or following) word.  With    a
  3454.            negative    argument, lowercase the    previous word, but do
  3455.            not move    point.
  3456.       ccccaaaappppiiiittttaaaalllliiiizzzzeeee----wwwwoooorrrrdddd ((((MMMM----cccc))))
  3457.            Capitalize the current (or following) word.  With a
  3458.            negative    argument, capitalize the previous word,    but do
  3459.            not move    point.
  3460.  
  3461.     KKKKiiiilllllllliiiinnnngggg    aaaannnndddd YYYYaaaannnnkkkkiiiinnnngggg
  3462.       kkkkiiiillllllll----lllliiiinnnneeee ((((CCCC----kkkk))))
  3463.            Kill the    text from the current cursor position to the
  3464.            end of the line.
  3465.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----kkkkiiiillllllll----lllliiiinnnneeee ((((CCCC----xxxx RRRRuuuubbbboooouuuutttt))))
  3466.            Kill backward to    the beginning of the line.
  3467.       uuuunnnniiiixxxx----lllliiiinnnneeee----ddddiiiissssccccaaaarrrrdddd ((((CCCC----uuuu))))
  3468.            Kill backward from point    to the beginning of the    line.
  3469.            The killed text is saved    on the kill-ring.
  3470.  
  3471.       kkkkiiiillllllll----wwwwhhhhoooolllleeee----lllliiiinnnneeee
  3472.            Kill all    characters on the current line,    no matter
  3473.            where the cursor    is.
  3474.       kkkkiiiillllllll----wwwwoooorrrrdddd ((((MMMM----dddd))))
  3475.            Kill from the cursor to the end of the current word, or
  3476.            if between words, to the    end of the next    word.  Word
  3477.            boundaries are the same as those    used by    ffffoooorrrrwwwwaaaarrrrdddd----wwwwoooorrrrdddd.
  3478.       bbbbaaaacccckkkkwwwwaaaarrrrdddd----kkkkiiiillllllll----wwwwoooorrrrdddd ((((MMMM----RRRRuuuubbbboooouuuutttt))))
  3479.            Kill the    word behind the    cursor.     Word boundaries are
  3480.            the same    as those used by bbbbaaaacccckkkkwwwwaaaarrrrdddd----wwwwoooorrrrdddd.
  3481.       uuuunnnniiiixxxx----wwwwoooorrrrdddd----rrrruuuubbbboooouuuutttt ((((CCCC----wwww))))
  3482.            Kill the    word behind the    cursor,    using white space as a
  3483.            word boundary.  The word    boundaries are different from
  3484.            bbbbaaaacccckkkkwwwwaaaarrrrdddd----kkkkiiiillllllll----wwwwoooorrrrdddd.
  3485.       ddddeeeelllleeeetttteeee----hhhhoooorrrriiiizzzzoooonnnnttttaaaallll----ssssppppaaaacccceeee ((((MMMM----\\\\))))
  3486.            Delete all spaces and tabs around point.
  3487.       kkkkiiiillllllll----rrrreeeeggggiiiioooonnnn
  3488.            Kill the    text between the point and _m_a_r_k    (saved cursor
  3489.            position).  This    text is    referred to as the _r_e_g_i_o_n.
  3490.       ccccooooppppyyyy----rrrreeeeggggiiiioooonnnn----aaaassss----kkkkiiiillllllll
  3491.            Copy the    text in    the region to the kill buffer.
  3492.  
  3493.  
  3494.  
  3495.      Page 53                         (printed 3/25/99)
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3503.  
  3504.  
  3505.  
  3506.       ccccooooppppyyyy----bbbbaaaacccckkkkwwwwaaaarrrrdddd----wwwwoooorrrrdddd
  3507.            Copy the    word before point to the kill buffer.  The
  3508.            word boundaries are the same as bbbbaaaacccckkkkwwwwaaaarrrrdddd----wwwwoooorrrrdddd.
  3509.       ccccooooppppyyyy----ffffoooorrrrwwwwaaaarrrrdddd----wwwwoooorrrrdddd
  3510.            Copy the    word following point to    the kill buffer.  The
  3511.            word boundaries are the same as ffffoooorrrrwwwwaaaarrrrdddd----wwwwoooorrrrdddd.
  3512.       yyyyaaaannnnkkkk ((((CCCC----yyyy))))
  3513.            Yank the    top of the kill    ring into the buffer at    the
  3514.            cursor.
  3515.       yyyyaaaannnnkkkk----ppppoooopppp ((((MMMM----yyyy))))
  3516.            Rotate the kill ring, and yank the new top.  Only works
  3517.            following yyyyaaaannnnkkkk or yyyyaaaannnnkkkk----ppppoooopppp.
  3518.  
  3519.     NNNNuuuummmmeeeerrrriiiicccc    AAAArrrrgggguuuummmmeeeennnnttttssss
  3520.       ddddiiiiggggiiiitttt----aaaarrrrgggguuuummmmeeeennnntttt ((((MMMM----0000,,,, MMMM----1111,,,, ............,,,, MMMM--------))))
  3521.            Add this    digit to the argument already accumulating, or
  3522.            start a new argument.  M-- starts a negative argument.
  3523.       uuuunnnniiiivvvveeeerrrrssssaaaallll----aaaarrrrgggguuuummmmeeeennnntttt
  3524.            This is another way to specify an argument.  If this
  3525.            command is followed by one or more digits, optionally
  3526.            with a leading minus sign, those    digits define the
  3527.            argument.  If the command is followed by    digits,
  3528.            executing uuuunnnniiiivvvveeeerrrrssssaaaallll----aaaarrrrgggguuuummmmeeeennnntttt again ends the numeric
  3529.            argument, but is    otherwise ignored.  As a special case,
  3530.            if this command is immediately followed by a character
  3531.            that is neither a digit or minus    sign, the argument
  3532.            count for the next command is multiplied    by four.  The
  3533.            argument    count is initially one,    so executing this
  3534.            function    the first time makes the argument count    four,
  3535.            a second    time makes the argument    count sixteen, and so
  3536.            on.
  3537.  
  3538.     CCCCoooommmmpppplllleeeettttiiiinnnngggg
  3539.       ccccoooommmmpppplllleeeetttteeee ((((TTTTAAAABBBB))))
  3540.            Attempt to perform completion on    the text before    point.
  3541.            BBBBaaaasssshhhh attempts completion    treating the text as a
  3542.            variable    (if the    text begins with $$$$), username (if the
  3543.            text begins with    ~~~~), hostname (if the text begins with
  3544.            @@@@), or command (including aliases and functions)    in
  3545.            turn.  If none of these produces    a match, filename
  3546.            completion is attempted.
  3547.       ppppoooossssssssiiiibbbblllleeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss ((((MMMM----????))))
  3548.            List the    possible completions of    the text before    point.
  3549.       iiiinnnnsssseeeerrrrtttt----ccccoooommmmpppplllleeeettttiiiioooonnnnssss ((((MMMM----****))))
  3550.            Insert all completions of the text before point that
  3551.            would have been generated by ppppoooossssssssiiiibbbblllleeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss.
  3552.       mmmmeeeennnnuuuu----ccccoooommmmpppplllleeeetttteeee
  3553.            Similar to ccccoooommmmpppplllleeeetttteeee, but    replaces the word to be
  3554.            completed with a    single match from the list of possible
  3555.            completions.  Repeated execution    of mmmmeeeennnnuuuu----ccccoooommmmpppplllleeeetttteeee steps
  3556.            through the list    of possible completions, inserting
  3557.            each match in turn.  At the end of the list of
  3558.  
  3559.  
  3560.  
  3561.      Page 54                         (printed 3/25/99)
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3569.  
  3570.  
  3571.  
  3572.            completions, the    bell is    rung and the original text is
  3573.            restored.  An argument of _n moves _n positions forward
  3574.            in the list of matches; a negative argument may be used
  3575.            to move backward    through    the list.  This    command    is
  3576.            intended    to be bound to TTTTAAAABBBB, but    is unbound by default.
  3577.       ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr----oooorrrr----lllliiiisssstttt
  3578.            Deletes the character under the cursor if not at    the
  3579.            beginning or end    of the line (like ddddeeeelllleeeetttteeee----cccchhhhaaaarrrr).     If at
  3580.            the end of the line, behaves identically    to ppppoooossssssssiiiibbbblllleeee----
  3581.            ccccoooommmmpppplllleeeettttiiiioooonnnnssss.  This command is unbound by    default.
  3582.       ccccoooommmmpppplllleeeetttteeee----ffffiiiilllleeeennnnaaaammmmeeee ((((MMMM----////))))
  3583.            Attempt filename    completion on the text before point.
  3584.       ppppoooossssssssiiiibbbblllleeee----ffffiiiilllleeeennnnaaaammmmeeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss    ((((CCCC----xxxx ////))))
  3585.            List the    possible completions of    the text before    point,
  3586.            treating    it as a    filename.
  3587.       ccccoooommmmpppplllleeeetttteeee----uuuusssseeeerrrrnnnnaaaammmmeeee ((((MMMM----~~~~))))
  3588.            Attempt completion on the text before point, treating
  3589.            it as a username.
  3590.       ppppoooossssssssiiiibbbblllleeee----uuuusssseeeerrrrnnnnaaaammmmeeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss    ((((CCCC----xxxx ~~~~))))
  3591.            List the    possible completions of    the text before    point,
  3592.            treating    it as a    username.
  3593.       ccccoooommmmpppplllleeeetttteeee----vvvvaaaarrrriiiiaaaabbbblllleeee ((((MMMM----$$$$))))
  3594.            Attempt completion on the text before point, treating
  3595.            it as a shell variable.
  3596.       ppppoooossssssssiiiibbbblllleeee----vvvvaaaarrrriiiiaaaabbbblllleeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss    ((((CCCC----xxxx $$$$))))
  3597.            List the    possible completions of    the text before    point,
  3598.            treating    it as a    shell variable.
  3599.       ccccoooommmmpppplllleeeetttteeee----hhhhoooossssttttnnnnaaaammmmeeee ((((MMMM----@@@@))))
  3600.            Attempt completion on the text before point, treating
  3601.            it as a hostname.
  3602.       ppppoooossssssssiiiibbbblllleeee----hhhhoooossssttttnnnnaaaammmmeeee----ccccoooommmmpppplllleeeettttiiiioooonnnnssss    ((((CCCC----xxxx @@@@))))
  3603.            List the    possible completions of    the text before    point,
  3604.            treating    it as a    hostname.
  3605.       ccccoooommmmpppplllleeeetttteeee----ccccoooommmmmmmmaaaannnndddd ((((MMMM----!!!!))))
  3606.            Attempt completion on the text before point, treating
  3607.            it as a command name.  Command completion attempts to
  3608.            match the text against aliases, reserved    words, shell
  3609.            functions, shell    builtins, and finally executable
  3610.            filenames, in that order.
  3611.       ppppoooossssssssiiiibbbblllleeee----ccccoooommmmmmmmaaaannnndddd----ccccoooommmmpppplllleeeettttiiiioooonnnnssss ((((CCCC----xxxx !!!!))))
  3612.            List the    possible completions of    the text before    point,
  3613.            treating    it as a    command    name.
  3614.       ddddyyyynnnnaaaammmmiiiicccc----ccccoooommmmpppplllleeeetttteeee----hhhhiiiissssttttoooorrrryyyy ((((MMMM----TTTTAAAABBBB))))
  3615.            Attempt completion on the text before point, comparing
  3616.            the text    against    lines from the history list for
  3617.            possible    completion matches.
  3618.       ccccoooommmmpppplllleeeetttteeee----iiiinnnnttttoooo----bbbbrrrraaaacccceeeessss ((((MMMM----{{{{))))
  3619.            Perform filename    completion and return the list of
  3620.            possible    completions enclosed within braces so the list
  3621.            is available to the shell (see BBBBrrrraaaacccceeee EEEExxxxppppaaaannnnssssiiiioooonnnn above).
  3622.  
  3623.     KKKKeeeeyyyybbbbooooaaaarrrrdddd MMMMaaaaccccrrrroooossss
  3624.  
  3625.  
  3626.  
  3627.      PPPPaaaaggggeeee 55555555                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3635.  
  3636.  
  3637.  
  3638.       ssssttttaaaarrrrtttt----kkkkbbbbdddd----mmmmaaaaccccrrrroooo ((((CCCC----xxxx (((())))
  3639.            Begin saving the    characters typed into the current
  3640.            keyboard    macro.
  3641.       eeeennnndddd----kkkkbbbbdddd----mmmmaaaaccccrrrroooo    ((((CCCC----xxxx ))))))))
  3642.            Stop saving the characters typed    into the current
  3643.            keyboard    macro and store    the definition.
  3644.       ccccaaaallllllll----llllaaaasssstttt----kkkkbbbbdddd----mmmmaaaaccccrrrroooo ((((CCCC----xxxx eeee))))
  3645.            Re-execute the last keyboard macro defined, by making
  3646.            the characters in the macro appear as if    typed at the
  3647.            keyboard.
  3648.  
  3649.     MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss
  3650.       rrrreeee----rrrreeeeaaaadddd----iiiinnnniiiitttt----ffffiiiilllleeee ((((CCCC----xxxx CCCC----rrrr))))
  3651.            Read in the contents of the _i_n_p_u_t_r_c file, and
  3652.            incorporate any bindings    or variable assignments    found
  3653.            there.
  3654.       aaaabbbboooorrrrtttt    ((((CCCC----gggg))))
  3655.            Abort the current editing command and ring the
  3656.            terminal's bell (subject    to the setting of bbbbeeeellllllll----ssssttttyyyylllleeee).
  3657.       ddddoooo----uuuuppppppppeeeerrrrccccaaaasssseeee----vvvveeeerrrrssssiiiioooonnnn ((((MMMM----aaaa,,,, MMMM----bbbb,,,, MMMM----_x,,,, ............))))
  3658.            If the metafied character _x is lowercase, run the
  3659.            command that is bound to    the corresponding uppercase
  3660.            character.
  3661.       pppprrrreeeeffffiiiixxxx----mmmmeeeettttaaaa ((((EEEESSSSCCCC))))
  3662.            Metafy the next character typed.     EEEESSSSCCCC ffff is equivalent
  3663.            to MMMMeeeettttaaaa----ffff.
  3664.       uuuunnnnddddoooo ((((CCCC----____,,,, CCCC----xxxx CCCC----uuuu))))
  3665.            Incremental undo, separately remembered for each    line.
  3666.       rrrreeeevvvveeeerrrrtttt----lllliiiinnnneeee ((((MMMM----rrrr))))
  3667.            Undo all    changes    made to    this line.  This is like
  3668.            executing the uuuunnnnddddoooo command enough times to return the
  3669.            line to its initial state.
  3670.       ttttiiiillllddddeeee----eeeexxxxppppaaaannnndddd ((((MMMM----&&&&))))
  3671.            Perform tilde expansion on the current word.
  3672.       sssseeeetttt----mmmmaaaarrrrkkkk ((((CCCC----@@@@,,,, MMMM----<<<<ssssppppaaaacccceeee>>>>))))
  3673.            Set the mark to the current point.  If a    numeric
  3674.            argument    is supplied, the mark is set to    that position.
  3675.       eeeexxxxcccchhhhaaaannnnggggeeee----ppppooooiiiinnnntttt----aaaannnndddd----mmmmaaaarrrrkkkk ((((CCCC----xxxx CCCC----xxxx))))
  3676.            Swap the    point with the mark.  The current cursor
  3677.            position    is set to the saved position, and the old
  3678.            cursor position is saved    as the mark.
  3679.       cccchhhhaaaarrrraaaacccctttteeeerrrr----sssseeeeaaaarrrrcccchhhh ((((CCCC----]]]]))))
  3680.            A character is read and point is    moved to the next
  3681.            occurrence of that character.  A    negative count
  3682.            searches    for previous occurrences.
  3683.       cccchhhhaaaarrrraaaacccctttteeeerrrr----sssseeeeaaaarrrrcccchhhh----bbbbaaaacccckkkkwwwwaaaarrrrdddd ((((MMMM----CCCC----]]]]))))
  3684.            A character is read and point is    moved to the previous
  3685.            occurrence of that character.  A    negative count
  3686.            searches    for subsequent occurrences.
  3687.       iiiinnnnsssseeeerrrrtttt----ccccoooommmmmmmmeeeennnntttt ((((MMMM----####))))
  3688.            The value of the    rrrreeeeaaaaddddlllliiiinnnneeee ccccoooommmmmmmmeeeennnntttt----bbbbeeeeggggiiiinnnn variable    is
  3689.            inserted    at the beginning of the    current    line, and the
  3690.  
  3691.  
  3692.  
  3693.      Page 56                         (printed 3/25/99)
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3701.  
  3702.  
  3703.  
  3704.            line is accepted    as if a    newline    had been typed.     This
  3705.            makes the current line a    shell comment.
  3706.       gggglllloooobbbb----eeeexxxxppppaaaannnndddd----wwwwoooorrrrdddd ((((CCCC----xxxx    ****))))
  3707.            The word    before point is    treated    as a pattern for
  3708.            pathname    expansion, and the list    of matching file names
  3709.            is inserted, replacing the word.
  3710.       gggglllloooobbbb----lllliiiisssstttt----eeeexxxxppppaaaannnnssssiiiioooonnnnssss ((((CCCC----xxxx gggg))))
  3711.            The list    of expansions that would have been generated
  3712.            by gggglllloooobbbb----eeeexxxxppppaaaannnndddd----wwwwoooorrrrdddd is displayed, and the line is
  3713.            redrawn.
  3714.       dddduuuummmmpppp----ffffuuuunnnnccccttttiiiioooonnnnssss
  3715.            Print all of the    functions and their key    bindings to
  3716.            the readline output stream.  If a numeric argument is
  3717.            supplied, the output is formatted in such a way that it
  3718.            can be made part    of an _i_n_p_u_t_r_c file.
  3719.       dddduuuummmmpppp----vvvvaaaarrrriiiiaaaabbbblllleeeessss
  3720.            Print all of the    settable readline variables and    their
  3721.            values to the readline output stream.  If a numeric
  3722.            argument    is supplied, the output    is formatted in    such a
  3723.            way that    it can be made part of an _i_n_p_u_t_r_c file.
  3724.       dddduuuummmmpppp----mmmmaaaaccccrrrroooossss
  3725.            Print all of the    readline key sequences bound to    macros
  3726.            and the strings they ouput.  If a numeric argument is
  3727.            supplied, the output is formatted in such a way that it
  3728.            can be made part    of an _i_n_p_u_t_r_c file.
  3729.       ddddiiiissssppppllllaaaayyyy----sssshhhheeeellllllll----vvvveeeerrrrssssiiiioooonnnn    ((((CCCC----xxxx CCCC----vvvv))))
  3730.            Display version information about the current instance
  3731.            of bbbbaaaasssshhhh.
  3732.  
  3733.      HHHHIIIISSSSTTTTOOOORRRRYYYY
  3734.       When the ----oooo hhhhiiiissssttttoooorrrryyyy option to    the sssseeeetttt    builtin    is enabled,
  3735.       the shell provides access to the _c_o_m_m_a_n_d _h_i_s_t_o_r_y, the    list
  3736.       of commands previously typed.     The text of the last HHHHIIIISSSSTTTTSSSSIIIIZZZZEEEE
  3737.       commands (default 500) is saved in a history list.  The
  3738.       shell    stores each command in the history list    prior to
  3739.       parameter and    variable expansion (see    EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN above) but
  3740.       after    history    expansion is performed,    subject    to the values
  3741.       of the shell variables HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE and    HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL.  On
  3742.       startup, the history is initialized from the file named by
  3743.       the variable HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE    (default ~/._b_a_s_h__h_i_s_t_o_r_y).  HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
  3744.       is truncated,    if necessary, to contain no more than
  3745.       HHHHIIIISSSSTTTTFFFFIIIILLLLEEEESSSSIIIIZZZZEEEE lines.  When an interactive shell exits,    the
  3746.       last HHHHIIIISSSSTTTTSSSSIIIIZZZZEEEE    lines are copied from the history list to
  3747.       HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE.  If    the hhhhiiiissssttttaaaappppppppeeeennnndddd shell option is enabled (see
  3748.       the description of sssshhhhoooopppptttt under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  3749.       below), the lines are    appended to the    history    file,
  3750.       otherwise the    history    file is    overwritten.  If HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE is
  3751.       unset, or if the history file    is unwritable, the history is
  3752.       not saved.  After saving the history,    the history file is
  3753.       truncated to contain no more than HHHHIIIISSSSTTTTFFFFIIIILLLLEEEESSSSIIIIZZZZEEEE lines.     If
  3754.       HHHHIIIISSSSTTTTFFFFIIIILLLLEEEESSSSIIIIZZZZEEEE is not set, no truncation is performed.
  3755.  
  3756.  
  3757.  
  3758.  
  3759.      Page 57                         (printed 3/25/99)
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3767.  
  3768.  
  3769.  
  3770.       The builtin command ffffcccc (see SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below)
  3771.       may be used to list or edit and re-execute a portion of the
  3772.       history list.     The hhhhiiiissssttttoooorrrryyyy builtin can be used to display or
  3773.       modify the history list and manipulate the history file.
  3774.       When using the command-line editing, search commands are
  3775.       available in each editing mode that provide access to    the
  3776.       history list.
  3777.  
  3778.       The shell allows control over    which commands are saved on
  3779.       the history list.  The HHHHIIIISSSSTTTTCCCCOOOONNNNTTTTRRRROOOOLLLL and HHHHIIIISSSSTTTTIIIIGGGGNNNNOOOORRRREEEE variables
  3780.       may be set to    cause the shell    to save    only a subset of the
  3781.       commands entered.  The ccccmmmmddddhhhhiiiisssstttt shell option, if enabled,
  3782.       causes the shell to attempt to save each line    of a multi-
  3783.       line command in the same history entry, adding semicolons
  3784.       where    necessary to preserve syntactic    correctness.  The
  3785.       lllliiiitttthhhhiiiisssstttt shell    option causes the shell    to save    the command
  3786.       with embedded    newlines instead of semicolons.     See the
  3787.       description of the sssshhhhoooopppptttt builtin below under SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN
  3788.       CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS for information on setting and unsetting shell
  3789.       options.
  3790.  
  3791.      HHHHIIIISSSSTTTTOOOORRRRYYYY EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
  3792.       The shell supports a history expansion feature that is
  3793.       similar to the history expansion in ccccsssshhhh....  This section
  3794.       describes what syntax    features are available.     This feature
  3795.       is enabled by    default    for interactive    shells,    and can    be
  3796.       disabled using the ++++HHHH    option to the sssseeeetttt builtin command (see
  3797.       SSSSHHHHEEEELLLLLLLL    BBBBUUUUIIIILLLLTTTTIIIINNNN    CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS below).  Non-interactive shells do
  3798.       not perform history expansion    by default.
  3799.  
  3800.       History expansions introduce words from the history list
  3801.       into the input stream, making    it easy    to repeat commands,
  3802.       insert the arguments to a previous command into the current
  3803.       input    line, or fix errors in previous    commands quickly.
  3804.  
  3805.       History expansion is performed immediately after a complete
  3806.       line is read,    before the shell breaks    it into    words.    It
  3807.       takes    place in two parts.  The first is to determine which
  3808.       line from the    history    list to    use during substitution.  The
  3809.       second is to select portions of that line for    inclusion into
  3810.       the current one.  The    line selected from the history is the
  3811.       _e_v_e_n_t, and the portions of that line that are    acted upon are
  3812.       _w_o_r_d_s.  Various _m_o_d_i_f_i_e_r_s are    available to manipulate    the
  3813.       selected words.  The line is broken into words in the    same
  3814.       fashion as when reading input, so that several
  3815.       _m_e_t_a_c_h_a_r_a_c_t_e_r-separated words    surrounded by quotes are
  3816.       considered one word.    History    expansions are introduced by
  3817.       the appearance of the    history    expansion character, which is
  3818.       !!!! by default.     Only backslash    (\\\\) and    single quotes can
  3819.       quote    the history expansion character.
  3820.  
  3821.       Several shell    options    settable with the sssshhhhoooopppptttt    builtin    may be
  3822.  
  3823.  
  3824.  
  3825.      Page 58                         (printed 3/25/99)
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3833.  
  3834.  
  3835.  
  3836.       used to tailor the behavior of history expansion.  If    the
  3837.       hhhhiiiissssttttvvvveeeerrrriiiiffffyyyy shell option is enabled (see the description of
  3838.       the sssshhhhoooopppptttt builtin), and rrrreeeeaaaaddddlllliiiinnnneeee is being used, history
  3839.       substitutions    are not    immediately passed to the shell
  3840.       parser.  Instead, the    expanded line is reloaded into the
  3841.       rrrreeeeaaaaddddlllliiiinnnneeee editing buffer for further modification.  If
  3842.       rrrreeeeaaaaddddlllliiiinnnneeee is being used, and the hhhhiiiissssttttrrrreeeeeeeeddddiiiitttt shell option is
  3843.       enabled, a failed history substitution will be reloaded into
  3844.       the rrrreeeeaaaaddddlllliiiinnnneeee editing buffer for correction.  The ----pppp option
  3845.       to the hhhhiiiissssttttoooorrrryyyy builtin command may be    used to    see what a
  3846.       history expansion will do before using it.  The ----ssss option to
  3847.       the hhhhiiiissssttttoooorrrryyyy builtin may be used to add commands to the end
  3848.       of the history list without actually executing them, so that
  3849.       they are available for subsequent recall.
  3850.  
  3851.       The shell allows control of the various characters used by
  3852.       the history expansion    mechanism (see the description of
  3853.       hhhhiiiissssttttcccchhhhaaaarrrrssss above under    SSSShhhheeeellllllll VVVVaaaarrrriiiiaaaabbbblllleeeessss).
  3854.  
  3855.     EEEEvvvveeeennnntttt DDDDeeeessssiiiiggggnnnnaaaattttoooorrrrssss
  3856.       An event designator is a reference to    a command line entry
  3857.       in the history list.
  3858.  
  3859.       !!!!    Start a history substitution, except when followed by a
  3860.            bbbbllllaaaannnnkkkk, newline, = or (.
  3861.       !!!!_n   Refer to    command    line _n.
  3862.       !!!!----_n  Refer to    the current command line minus _n.
  3863.       !!!!!!!!   Refer to    the previous command.  This is a synonym for
  3864.            `!-1'.
  3865.       !!!!_s_t_r_i_n_g
  3866.            Refer to    the most recent    command    starting with _s_t_r_i_n_g.
  3867.       !!!!????_s_t_r_i_n_g[[[[????]]]]
  3868.            Refer to    the most recent    command    containing _s_t_r_i_n_g.
  3869.            The trailing ???? may be omitted if    _s_t_r_i_n_g is followed
  3870.            immediately by a    newline.
  3871.        _s_t_r_i_n_g_1 _s_t_r_i_n_g_2
  3872.       ^^^^    Qui^^^^ck subst^^^^itution.  Repeat the last command, replacing
  3873.            _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2.  Equivalent to
  3874.            ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMMMooooddddiiiiffffiiiieeeerrrrssss    below).
  3875.       !!!!####   The entire command line typed so    far.
  3876.  
  3877.     WWWWoooorrrrdddd DDDDeeeessssiiiiggggnnnnaaaattttoooorrrrssss
  3878.       Word designators are used to select desired words from the
  3879.       event.  A :::: separates    the event specification    from the word
  3880.       designator.  It may be omitted if the    word designator    begins
  3881.       with a ^^^^, $$$$, ****, ----, or    %%%%.  Words are numbered from the
  3882.       beginning of the line, with the first    word being denoted by
  3883.       0 (zero).  Words are inserted    into the current line
  3884.       separated by single spaces.
  3885.  
  3886.       0000 ((((zzzzeeeerrrroooo))))
  3887.            The zeroth word.     For the shell,    this is    the command
  3888.  
  3889.  
  3890.  
  3891.      Page 59                         (printed 3/25/99)
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3899.  
  3900.  
  3901.  
  3902.            word.
  3903.       _n    The _nth word.
  3904.       ^^^^    The first argument.  That is, word 1.
  3905.       $$$$    The last    argument.
  3906.       %%%%    The word    matched    by the most recent `?_s_t_r_i_n_g?' search.
  3907.       _x----_y  A range of words; `-_y' abbreviates `0-_y'.
  3908.       ****    All of the words    but the    zeroth.     This is a synonym for
  3909.            `_1-$'.  It is not an error to use **** if there is just
  3910.            one word    in the event; the empty    string is returned in
  3911.            that case.
  3912.       xxxx****   Abbreviates _x-$.
  3913.       xxxx----   Abbreviates _x-$ like xxxx****,    but omits the last word.
  3914.  
  3915.       If a word designator is supplied without an event
  3916.       specification, the previous command is used as the event.
  3917.  
  3918.     MMMMooooddddiiiiffffiiiieeeerrrrssss
  3919.       After    the optional word designator, there may    appear a
  3920.       sequence of one or more of the following modifiers, each
  3921.       preceded by a    `:'.
  3922.  
  3923.       hhhh    Remove a    trailing file name component, leaving only the
  3924.            head.
  3925.       tttt    Remove all leading file name components,    leaving    the
  3926.            tail.
  3927.       rrrr    Remove a    trailing suffix    of the form ._x_x_x, leaving the
  3928.            basename.
  3929.       eeee    Remove all but the trailing suffix.
  3930.       pppp    Print the new command but do not    execute    it.
  3931.       qqqq    Quote the substituted words, escaping further
  3932.            substitutions.
  3933.       xxxx    Quote the substituted words as with qqqq, but break    into
  3934.            words at    bbbbllllaaaannnnkkkkssss and newlines.
  3935.       ssss////_o_l_d////_n_e_w////
  3936.            Substitute _n_e_w for the first occurrence of _o_l_d in the
  3937.            event line.  Any    delimiter can be used in place of /.
  3938.            The final delimiter is optional if it is    the last
  3939.            character of the    event line.  The delimiter may be
  3940.            quoted in _o_l_d and _n_e_w with a single backslash.  If &
  3941.            appears in _n_e_w, it is replaced by _o_l_d.  A single
  3942.            backslash will quote the    &.  If _o_l_d is null, it is set
  3943.            to the last _o_l_d substituted, or,    if no previous history
  3944.            substitutions took place, the last _s_t_r_i_n_g in a
  3945.            !!!!????_s_t_r_i_n_g[[[[????]]]] search.
  3946.       &&&&    Repeat the previous substitution.
  3947.       gggg    Cause changes to    be applied over    the entire event line.
  3948.            This is used in conjunction with    `::::ssss' (e.g.,
  3949.            `::::ggggssss////_o_l_d////_n_e_w////') or `::::&&&&'.     If used with `::::ssss', any
  3950.            delimiter can be    used in    place of /, and    the final
  3951.            delimiter is optional if    it is the last character of
  3952.            the event line.
  3953.  
  3954.  
  3955.  
  3956.  
  3957.      Page 60                         (printed 3/25/99)
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  3965.  
  3966.  
  3967.  
  3968.      SSSSHHHHEEEELLLLLLLL BBBBUUUUIIIILLLLTTTTIIIINNNN CCCCOOOOMMMMMMMMAAAANNNNDDDDSSSS
  3969.       Unless otherwise noted, each builtin command documented in
  3970.       this section as accepting options preceded by    ---- accepts --------
  3971.       to signify the end of    the options.
  3972.  
  3973.       :::: [_a_r_g_u_m_e_n_t_s]
  3974.            No effect; the command does nothing beyond expanding
  3975.            _a_r_g_u_m_e_n_t_s and performing    any specified redirections.  A
  3976.            zero exit code is returned.
  3977.  
  3978.        ....  _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
  3979.       ssssoooouuuurrrrcccceeee _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
  3980.            Read and    execute    commands from _f_i_l_e_n_a_m_e in the current
  3981.            shell environment and return the    exit status of the
  3982.            last command executed from _f_i_l_e_n_a_m_e.  If    _f_i_l_e_n_a_m_e does
  3983.            not contain a slash, file names in PPPPAAAATTTTHHHH are used    to
  3984.            find the    directory containing _f_i_l_e_n_a_m_e.    The file
  3985.            searched    for in PPPPAAAATTTTHHHH need not be    executable.  The
  3986.            current directory is searched if    no file    is found in
  3987.            PPPPAAAATTTTHHHH.  If the ssssoooouuuurrrrcccceeeeppppaaaatttthhhh    option to the sssshhhhoooopppptttt builtin
  3988.            command is turned off, the PPPPAAAATTTTHHHH is not searched.     If
  3989.            any _a_r_g_u_m_e_n_t_s are supplied, they    become the positional
  3990.            parameters when _f_i_l_e_n_a_m_e    is executed.  Otherwise    the
  3991.            positional parameters are unchanged.  The return    status
  3992.            is the status of    the last command exited    within the
  3993.            script (0 if no commands    are executed), and false if
  3994.            _f_i_l_e_n_a_m_e    is not found or    cannot be read.
  3995.  
  3996.       aaaalllliiiiaaaassss    [----pppp] [_n_a_m_e[=_v_a_l_u_e] ...]
  3997.            AAAAlllliiiiaaaassss with no arguments or with the ----pppp option prints
  3998.            the list    of aliases in the form aaaalllliiiiaaaassss _n_a_m_e=_v_a_l_u_e    on
  3999.            standard    output.     When arguments    are supplied, an alias
  4000.            is defined for each _n_a_m_e    whose _v_a_l_u_e is given.  A
  4001.            trailing    space in  _v_a_l_u_e    causes the next    word to    be
  4002.            checked for alias substitution when the alias is
  4003.            expanded.  For each _n_a_m_e    in the argument    list for which
  4004.            no _v_a_l_u_e    is supplied, the name and value    of the alias
  4005.            is printed.  AAAAlllliiiiaaaassss returns true unless a    _n_a_m_e is    given
  4006.            for which no alias has been defined.
  4007.  
  4008.       bbbbgggg [_j_o_b_s_p_e_c]
  4009.            Resume the suspended job    _j_o_b_s_p_e_c    in the background, as
  4010.            if it had been started with &&&&.  If _j_o_b_s_p_e_c is not
  4011.            present,    the shell's notion of the _c_u_r_r_e_n_t _j_o_b is used.
  4012.            bbbbgggg _j_o_b_s_p_e_c returns 0 unless run when job    control    is
  4013.            disabled    or, when run with job control enabled, if
  4014.            _j_o_b_s_p_e_c was not found or    started    without    job control.
  4015.  
  4016.       bbbbiiiinnnndddd [----mmmm _k_e_y_m_a_p] [----llllppppssssvvvvPPPPSSSSVVVV]
  4017.       bbbbiiiinnnndddd [----mmmm _k_e_y_m_a_p] [----qqqq _f_u_n_c_t_i_o_n] [----uuuu _f_u_n_c_t_i_o_n] [----rrrr _k_e_y_s_e_q]
  4018.       bbbbiiiinnnndddd [----mmmm _k_e_y_m_a_p] ----ffff _f_i_l_e_n_a_m_e
  4019.       bbbbiiiinnnndddd [----mmmm _k_e_y_m_a_p] _k_e_y_s_e_q:_f_u_n_c_t_i_o_n-_n_a_m_e
  4020.            Display current rrrreeeeaaaaddddlllliiiinnnneeee    key and    function bindings, or
  4021.  
  4022.  
  4023.      Page 61                         (printed 3/25/99)
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4031.  
  4032.  
  4033.  
  4034.            bind a key sequence to a    rrrreeeeaaaaddddlllliiiinnnneeee function or macro.
  4035.            The binding syntax accepted is identical    to that    of
  4036.            ._i_n_p_u_t_r_c, but each binding must be passed as a separate
  4037.            argument; e.g., '"\C-x\C-r": re-read-init-file'.
  4038.            Options,    if supplied, have the following    meanings:
  4039.            ----mmmm _k_e_y_m_a_p
  4040.             Use    _k_e_y_m_a_p as the keymap to    be affected by the
  4041.             subsequent bindings.  Acceptable _k_e_y_m_a_p names are
  4042.             _e_m_a_c_s, _e_m_a_c_s-_s_t_a_n_d_a_r_d, _e_m_a_c_s-_m_e_t_a, _e_m_a_c_s-_c_t_l_x, _v_i,
  4043.             _v_i-_c_o_m_m_a_n_d,    and _v_i-_i_n_s_e_r_t.    _v_i is equivalent to
  4044.             _v_i-_c_o_m_m_a_n_d;    _e_m_a_c_s is equivalent to _e_m_a_c_s-_s_t_a_n_d_a_r_d.
  4045.            ----llll   List the names of all rrrreeeeaaaaddddlllliiiinnnneeee functions.
  4046.            ----pppp   Display rrrreeeeaaaaddddlllliiiinnnneeee function names and    bindings in
  4047.             such a way that they can be    re-read.
  4048.            ----PPPP   List current rrrreeeeaaaaddddlllliiiinnnneeee function names and bindings.
  4049.            ----vvvv   Display rrrreeeeaaaaddddlllliiiinnnneeee variable names and    values in such
  4050.             a way that they can    be re-read.
  4051.            ----VVVV   List current rrrreeeeaaaaddddlllliiiinnnneeee variable names and values.
  4052.            ----ssss   Display rrrreeeeaaaaddddlllliiiinnnneeee key sequences bound to macros and
  4053.             the    strings    they output in such a way that they
  4054.             can    be re-read.
  4055.            ----SSSS   Display rrrreeeeaaaaddddlllliiiinnnneeee key sequences bound to macros and
  4056.             the    strings    they output.
  4057.            ----ffff _f_i_l_e_n_a_m_e
  4058.             Read key bindings from _f_i_l_e_n_a_m_e.
  4059.            ----qqqq _f_u_n_c_t_i_o_n
  4060.             Query about    which keys invoke the named _f_u_n_c_t_i_o_n.
  4061.            ----uuuu _f_u_n_c_t_i_o_n
  4062.             Unbind all keys bound to the named _f_u_n_c_t_i_o_n.
  4063.            ----rrrr _k_e_y_s_e_q
  4064.             Remove any current binding for _k_e_y_s_e_q.
  4065.  
  4066.            The return value    is 0 unless an unrecognized option is
  4067.            given or    an error occurred.
  4068.  
  4069.       bbbbrrrreeeeaaaakkkk    [_n]
  4070.            Exit from within    a ffffoooorrrr, wwwwhhhhiiiilllleeee, uuuunnnnttttiiiillll, or    sssseeeelllleeeecccctttt loop.
  4071.            If _n is specified, break    _n levels.  _n must be _> 1.  If
  4072.            _n is greater than the number of enclosing loops,    all
  4073.            enclosing loops are exited.  The    return value is    0
  4074.            unless the shell    is not executing a loop    when bbbbrrrreeeeaaaakkkk is
  4075.            executed.
  4076.  
  4077.       bbbbuuuuiiiillllttttiiiinnnn _s_h_e_l_l-_b_u_i_l_t_i_n    [_a_r_g_u_m_e_n_t_s]
  4078.            Execute the specified shell builtin, passing it
  4079.            _a_r_g_u_m_e_n_t_s, and return its exit status.  This is useful
  4080.            when defining a function    whose name is the same as a
  4081.            shell builtin, retaining    the functionality of the
  4082.            builtin within the function.  The ccccdddd builtin is
  4083.            commonly    redefined this way.  The return    status is
  4084.            false if    _s_h_e_l_l-_b_u_i_l_t_i_n is not a shell builtin command.
  4085.  
  4086.  
  4087.  
  4088.  
  4089.      Page 62                         (printed 3/25/99)
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4097.  
  4098.  
  4099.  
  4100.       ccccdddd [----LLLLPPPP] [_d_i_r]
  4101.            Change the current directory to _d_i_r.  The variable HHHHOOOOMMMMEEEE
  4102.            is the default _d_i_r.  The    variable CCCCDDDDPPPPAAAATTTTHHHH    defines    the
  4103.            search path for the directory containing    _d_i_r.
  4104.            Alternative directory names in CCCCDDDDPPPPAAAATTTTHHHH are separated by
  4105.            a colon (:).  A null directory name in CCCCDDDDPPPPAAAATTTTHHHH is    the
  4106.            same as the current directory, i.e., ``....''.  If _d_i_r
  4107.            begins with a slash (/),    then CCCCDDDDPPPPAAAATTTTHHHH is not used. The
  4108.            ----PPPP option says to use the physical directory structure
  4109.            instead of following symbolic links (see    also the ----PPPP
  4110.            option to the sssseeeetttt builtin command); the ----LLLL option
  4111.            forces symbolic links to    be followed.  An argument of ----
  4112.            is equivalent to    $$$$OOOOLLLLDDDDPPPPWWWWDDDD.  The return value is true if
  4113.            the directory was successfully changed; false
  4114.            otherwise.
  4115.  
  4116.       ccccoooommmmmmmmaaaannnndddd [----ppppVVVVvvvv] _c_o_m_m_a_n_d [_a_r_g ...]
  4117.            Run _c_o_m_m_a_n_d with    _a_r_g_s suppressing the normal shell
  4118.            function    lookup.    Only builtin commands or commands
  4119.            found in    the PPPPAAAATTTTHHHH are executed.    If the ----pppp option is
  4120.            given, the search for _c_o_m_m_a_n_d is    performed using    a
  4121.            default value for PPPPAAAATTTTHHHH that is guaranteed to find all
  4122.            of the standard utilities.  If either the ----VVVV or ----vvvv
  4123.            option is supplied, a description of _c_o_m_m_a_n_d is
  4124.            printed.     The ----vvvv    option causes a    single word indicating
  4125.            the command or file name    used to    invoke _c_o_m_m_a_n_d to be
  4126.            displayed; the ----VVVV option    produces a more    verbose
  4127.            description.  If    the ----VVVV or ----vvvv option is supplied, the
  4128.            exit status is 0    if _c_o_m_m_a_n_d was found, and 1 if not.
  4129.            If neither option is supplied and an error occurred or
  4130.            _c_o_m_m_a_n_d cannot be found,    the exit status    is 127.
  4131.            Otherwise, the exit status of the ccccoooommmmmmmmaaaannnndddd builtin is
  4132.            the exit    status of _c_o_m_m_a_n_d.
  4133.  
  4134.       ccccoooonnnnttttiiiinnnnuuuueeee [_n]
  4135.            Resume the next iteration of the    enclosing ffffoooorrrr, wwwwhhhhiiiilllleeee,
  4136.            uuuunnnnttttiiiillll, or sssseeeelllleeeecccctttt    loop.  If _n is specified, resume at
  4137.            the _nth enclosing loop.    _n must be _> 1.    If _n is
  4138.            greater than the    number of enclosing loops, the last
  4139.            enclosing loop (the ``top-level'' loop) is resumed.
  4140.            The return value    is 0 unless the    shell is not executing
  4141.            a loop when ccccoooonnnnttttiiiinnnnuuuueeee is executed.
  4142.  
  4143.       ddddeeeeccccllllaaaarrrreeee [----aaaaffffFFFFiiiirrrrxxxx] [----pppp] [_n_a_m_e[=_v_a_l_u_e]]
  4144.       ttttyyyyppppeeeesssseeeetttt [----aaaaffffFFFFiiiirrrrxxxx] [----pppp] [_n_a_m_e[=_v_a_l_u_e]]
  4145.            Declare variables and/or    give them attributes.  If no
  4146.            _n_a_m_es are given then display the    values of variables.
  4147.            The ----pppp option will display the attributes and values of
  4148.            each _n_a_m_e.  When    ----pppp is used, additional options are
  4149.            ignored.     The ----FFFF    option inhibits    the display of
  4150.            function    definitions; only the function name and
  4151.            attributes are printed.    The ----FFFF option implies ----ffff.  The
  4152.  
  4153.  
  4154.  
  4155.      Page 63                         (printed 3/25/99)
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4163.  
  4164.  
  4165.  
  4166.            following options can be    used to    restrict output    to
  4167.            variables with the specified attribute or to give
  4168.            variables attributes:
  4169.            ----aaaa   Each _n_a_m_e is an array variable (see    AAAArrrrrrrraaaayyyyssss above).
  4170.            ----ffff   Use    function names only.
  4171.            ----iiii   The    variable is treated as an integer; arithmetic
  4172.             evaluation (see AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN )))) is
  4173.             performed when the variable    is assigned a value.
  4174.            ----rrrr   Make _n_a_m_es readonly.  These    names cannot then be
  4175.             assigned values by subsequent assignment
  4176.             statements or unset.
  4177.            ----xxxx   Mark _n_a_m_es for export to subsequent    commands via
  4178.             the    environment.
  4179.  
  4180.            Using `+' instead of `-'    turns off the attribute
  4181.            instead,    with the exception that    ++++aaaa may not be used to
  4182.            destroy an array    variable.  When    used in    a function,
  4183.            makes each _n_a_m_e local, as with the llllooooccccaaaallll    command.  The
  4184.            return value is 0 unless    an invalid option is
  4185.            encountered, an attempt is made to define a function
  4186.            using "-f foo=bar", an attempt is made to assign    a
  4187.            value to    a readonly variable, an    attempt    is made    to
  4188.            assign a    value to an array variable without using the
  4189.            compound    assignment syntax (see AAAArrrrrrrraaaayyyyssss above), one of
  4190.            the _n_a_m_e_s is not    a valid    shell variable name, an
  4191.            attempt is made to turn off readonly status for a
  4192.            readonly    variable, an attempt is    made to    turn off array
  4193.            status for an array variable, or    an attempt is made to
  4194.            display a non-existent function with -f.
  4195.  
  4196.       ddddiiiirrrrssss [[[[----ccccllllppppvvvv]]]] [[[[++++_n]]]] [[[[----_n]]]]
  4197.            Without options,    displays the list of currently
  4198.            remembered directories.    The default display is on a
  4199.            single line with    directory names    separated by spaces.
  4200.            Directories are added to    the list with the ppppuuuusssshhhhdddd
  4201.            command;    the ppppooooppppdddd command removes entries from the
  4202.            list.
  4203.            ++++_n   Displays the _nth entry counting from the left of
  4204.             the    list shown by ddddiiiirrrrssss when    invoked    without
  4205.             options, starting with zero.
  4206.            ----_n   Displays the _nth entry counting from the right of
  4207.             the    list shown by ddddiiiirrrrssss when    invoked    without
  4208.             options, starting with zero.
  4209.            ----cccc   Clears the directory stack by deleting all of the
  4210.             entries.
  4211.            ----llll   Produces a longer listing; the default listing
  4212.             format uses    a tilde    to denote the home directory.
  4213.            ----pppp   Print the directory    stack with one entry per line.
  4214.            ----vvvv   Print the directory    stack with one entry per line,
  4215.             prefixing each entry with its index    in the stack.
  4216.  
  4217.            The return value    is 0 unless an invalid option is
  4218.  
  4219.  
  4220.  
  4221.      Page 64                         (printed 3/25/99)
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4229.  
  4230.  
  4231.  
  4232.            supplied    or _n indexes beyond the    end of the directory
  4233.            stack.
  4234.  
  4235.       ddddiiiissssoooowwwwnnnn [----aaaarrrr] [----hhhh] [_j_o_b_s_p_e_c ...]
  4236.            Without options,    each _j_o_b_s_p_e_c is    removed    from the table
  4237.            of active jobs.    If the ----hhhh option is given, each
  4238.            _j_o_b_s_p_e_c is not removed from the table, but is marked so
  4239.            that SSSSIIIIGGGGHHHHUUUUPPPP is not sent to the job if the shell
  4240.            receives    a SSSSIIIIGGGGHHHHUUUUPPPP.  If no _j_o_b_s_p_e_c is present, and
  4241.            neither the ----aaaa nor the ----rrrr option    is supplied, the
  4242.            _c_u_r_r_e_n_t _j_o_b is used.  If    no _j_o_b_s_p_e_c is supplied,    the ----aaaa
  4243.            option means to remove or mark all jobs;    the ----rrrr option
  4244.            without a _j_o_b_s_p_e_c argument restricts operation to
  4245.            running jobs.  The return value is 0 unless a _j_o_b_s_p_e_c
  4246.            does not    specify    a valid    job.
  4247.  
  4248.       eeeecccchhhhoooo [----nnnneeeeEEEE] [_a_r_g ...]
  4249.            Output the _a_r_gs,    separated by spaces, followed by a
  4250.            newline.     The return status is always 0.     If ----nnnn is
  4251.            specified, the trailing newline is suppressed.  If the
  4252.            ----eeee option is given, interpretation of the following
  4253.            backslash-escaped characters is enabled.     The ----EEEE    option
  4254.            disables    the interpretation of these escape characters,
  4255.            even on systems where they are interpreted by default.
  4256.            eeeecccchhhhoooo does not interpret -------- to mean the end of options.
  4257.            eeeecccchhhhoooo interprets the following escape sequences:
  4258.            \\\\aaaa   alert (bell)
  4259.            \\\\bbbb   backspace
  4260.            \\\\cccc   suppress trailing newline
  4261.            \\\\eeee   an escape character
  4262.            \\\\ffff   form feed
  4263.            \\\\nnnn   new    line
  4264.            \\\\rrrr   carriage return
  4265.            \\\\tttt   horizontal tab
  4266.            \\\\vvvv   vertical tab
  4267.            \\\\\\\\   backslash
  4268.            \\\\_n_n_n the    character whose    ASCII code is the octal    value
  4269.             _n_n_n    (one to    three digits)
  4270.            \\\\xxxx_n_n_n
  4271.             the    character whose    ASCII code is the hexadecimal
  4272.             value _n_n_n (one to three digits)
  4273.  
  4274.       eeeennnnaaaabbbblllleeee [----aaaaddddnnnnppppssss] [----ffff _f_i_l_e_n_a_m_e]    [_n_a_m_e ...]
  4275.            Enable and disable builtin shell    commands.  Disabling a
  4276.            builtin allows a    disk command which has the same    name
  4277.            as a shell builtin to be    executed with specifying a
  4278.            full pathname, even though the shell normally searches
  4279.            for builtins before disk    commands.  If ----nnnn is used, each
  4280.            _n_a_m_e is disabled; otherwise, _n_a_m_e_s are enabled.    For
  4281.            example,    to use the tttteeeesssstttt    binary found via the PPPPAAAATTTTHHHH
  4282.            instead of the shell builtin version, run enable    -n
  4283.            test....  TTTThhhheeee ----ffff option means to load the new builtin
  4284.  
  4285.  
  4286.  
  4287.      Page 65                         (printed 3/25/99)
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4295.  
  4296.  
  4297.  
  4298.            command _n_a_m_e from shared    object _f_i_l_e_n_a_m_e, on systems
  4299.            that support dynamic loading.  The ----dddd option will
  4300.            delete a    builtin    previously loaded with ----ffff.  If no _n_a_m_e
  4301.            arguments are given, or if the ----pppp option    is supplied, a
  4302.            list of shell builtins is printed.  With    no other
  4303.            option arguments, the list consists of all enabled
  4304.            shell builtins.    If ----nnnn is supplied, only    disabled
  4305.            builtins    are printed.  If ----aaaa is supplied, the list
  4306.            printed includes    all builtins, with an indication of
  4307.            whether or not each is enabled.    If ----ssss is supplied, the
  4308.            output is restricted to the POSIX _s_p_e_c_i_a_l builtins.
  4309.            The return value    is 0 unless a _n_a_m_e is not a shell
  4310.            builtin or there    is a problem loading a new builtin
  4311.            from a shared object.
  4312.  
  4313.       eeeevvvvaaaallll [_a_r_g ...]
  4314.            The _a_r_gs    are read and concatenated together into    a
  4315.            single command.    This command is    then read and executed
  4316.            by the shell, and its exit status is returned as    the
  4317.            value of    eeeevvvvaaaallll.  If there    are no _a_r_g_s, or    only null
  4318.            arguments, eeeevvvvaaaallll returns 0.
  4319.  
  4320.       eeeexxxxeeeecccc [----ccccllll] [----aaaa _n_a_m_e] [_c_o_m_m_a_n_d    [_a_r_g_u_m_e_n_t_s]]
  4321.            If _c_o_m_m_a_n_d is specified,    it replaces the    shell.    No new
  4322.            process is created.  The    _a_r_g_u_m_e_n_t_s become the arguments
  4323.            to _c_o_m_m_a_n_d.  If the ----llll option is    supplied, the shell
  4324.            places a    dash in    the zeroth arg passed to _c_o_m_m_a_n_d.
  4325.            This is what _l_o_g_i_n(1) does.  The    ----cccc option causes
  4326.            _c_o_m_m_a_n_d to be executed with an empty environment.  If
  4327.            ----aaaa is supplied, the shell passes    _n_a_m_e as    the zeroth
  4328.            argument    to the executed    command.  If _c_o_m_m_a_n_d cannot be
  4329.            executed    for some reason, a non-interactive shell
  4330.            exits, unless the shell option eeeexxxxeeeeccccffffaaaaiiiillll is enabled, in
  4331.            which case it returns failure.  An interactive shell
  4332.            returns failure if the file cannot be executed.    If
  4333.            _c_o_m_m_a_n_d is not specified, any redirections take effect
  4334.            in the current shell, and the return status is 0.  If
  4335.            there is    a redirection error, the return    status is 1.
  4336.  
  4337.       eeeexxxxiiiitttt [_n]
  4338.            Cause the shell to exit with a status of    _n.  If _n is
  4339.            omitted,    the exit status    is that    of the last command
  4340.            executed.  A trap on EEEEXXXXIIIITTTT is executed before the    shell
  4341.            terminates.
  4342.  
  4343.       eeeexxxxppppoooorrrrtttt [----ffffnnnn] [_n_a_m_e[=_w_o_r_d]] ...
  4344.       eeeexxxxppppoooorrrrtttt ----pppp
  4345.            The supplied _n_a_m_e_s are marked for automatic export to
  4346.            the environment of subsequently executed    commands.  If
  4347.            the ----ffff option is    given, the _n_a_m_e_s refer to functions.
  4348.            If no _n_a_m_e_s are given, or if the    ----pppp option is supplied,
  4349.            a list of all names that    are exported in    this shell is
  4350.  
  4351.  
  4352.  
  4353.      Page 66                         (printed 3/25/99)
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4361.  
  4362.  
  4363.  
  4364.            printed.     The ----nnnn    option causes the export property to
  4365.            be removed from the named variables.  eeeexxxxppppoooorrrrtttt returns an
  4366.            exit status of 0    unless an invalid option is
  4367.            encountered, one    of the _n_a_m_e_s is    not a valid shell
  4368.            variable    name, or ----ffff is supplied    with a _n_a_m_e that is
  4369.            not a function.
  4370.  
  4371.       ffffcccc [----eeee _e_n_a_m_e]    [----nnnnllllrrrr] [_f_i_r_s_t] [_l_a_s_t]
  4372.       ffffcccc ----ssss    [_p_a_t=_r_e_p] [_c_m_d]
  4373.            Fix Command.  In    the first form,    a range    of commands
  4374.            from _f_i_r_s_t to _l_a_s_t is selected from the history list.
  4375.            _F_i_r_s_t and _l_a_s_t may be specified as a string (to locate
  4376.            the last    command    beginning with that string) or as a
  4377.            number (an index    into the history list, where a
  4378.            negative    number is used as an offset from the current
  4379.            command number).     If _l_a_s_t is not    specified it is    set to
  4380.            the current command for listing (so that    ffffcccc ----llll ----11110000
  4381.            prints the last 10 commands) and    to _f_i_r_s_t otherwise.
  4382.            If _f_i_r_s_t    is not specified it is set to the previous
  4383.            command for editing and -16 for listing.
  4384.  
  4385.            The ----nnnn option suppresses    the command numbers when
  4386.            listing.     The ----rrrr    option reverses    the order of the
  4387.            commands.  If the ----llll option is given, the commands are
  4388.            listed on standard output.  Otherwise, the editor given
  4389.            by _e_n_a_m_e    is invoked on a    file containing    those
  4390.            commands.  If _e_n_a_m_e is not given, the value of the
  4391.            FFFFCCCCEEEEDDDDIIIITTTT variable is used,    and the    value of EEEEDDDDIIIITTTTOOOORRRR    if
  4392.            FFFFCCCCEEEEDDDDIIIITTTT is not set.  If neither variable is set, _v_i is
  4393.            used.  When editing is complete,    the edited commands
  4394.            are echoed and executed.
  4395.  
  4396.            In the second form, _c_o_m_m_a_n_d is re-executed after    each
  4397.            instance    of _p_a_t is replaced by _r_e_p.  A useful alias to
  4398.            use with    this is    ``r=fc -s'', so    that typing ``r    cc''
  4399.            runs the    last command beginning with ``cc'' and typing
  4400.            ``r'' re-executes the last command.
  4401.  
  4402.            If the first form is used, the return value is 0    unless
  4403.            an invalid option is encountered    or _f_i_r_s_t or _l_a_s_t
  4404.            specify history lines out of range.  If the ----eeee option
  4405.            is supplied, the    return value is    the value of the last
  4406.            command executed    or failure if an error occurs with the
  4407.            temporary file of commands.  If the second form is
  4408.            used, the return    status is that of the command re-
  4409.            executed, unless    _c_m_d does not specify a valid history
  4410.            line, in    which case ffffcccc returns failure.
  4411.  
  4412.       ffffgggg [_j_o_b_s_p_e_c]
  4413.            Resume _j_o_b_s_p_e_c in the foreground, and make it the
  4414.            current job.  If    _j_o_b_s_p_e_c    is not present,    the shell's
  4415.            notion of the _c_u_r_r_e_n_t _j_o_b is used.  The return value is
  4416.  
  4417.  
  4418.  
  4419.      Page 67                         (printed 3/25/99)
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4427.  
  4428.  
  4429.  
  4430.            that of the command placed into the foreground, or
  4431.            failure if run when job control is disabled or, when
  4432.            run with    job control enabled, if    _j_o_b_s_p_e_c    does not
  4433.            specify a valid job or _j_o_b_s_p_e_c specifies    a job that was
  4434.            started without job control.
  4435.  
  4436.       ggggeeeettttooooppppttttssss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g_s]
  4437.            ggggeeeettttooooppppttttssss is used by shell    procedures to parse positional
  4438.            parameters.  _o_p_t_s_t_r_i_n_g contains the option letters to
  4439.            be recognized; if a letter is followed by a colon, the
  4440.            option is expected to have an argument, which should be
  4441.            separated from it by white space.  Each time it is
  4442.            invoked,    ggggeeeettttooooppppttttssss    places the next    option in the shell
  4443.            variable    _n_a_m_e, initializing _n_a_m_e    if it does not exist,
  4444.            and the index of    the next argument to be    processed into
  4445.            the variable OOOOPPPPTTTTIIIINNNNDDDD.  OOOOPPPPTTTTIIIINNNNDDDD is initialized to 1    each
  4446.            time the    shell or a shell script    is invoked.  When an
  4447.            option requires an argument, ggggeeeettttooooppppttttssss places that
  4448.            argument    into the variable OOOOPPPPTTTTAAAARRRRGGGG.  The shell does not
  4449.            reset OOOOPPPPTTTTIIIINNNNDDDD automatically; it must be manually reset
  4450.            between multiple    calls to ggggeeeettttooooppppttttssss within    the same shell
  4451.            invocation if a new set of parameters is    to be used.
  4452.  
  4453.            When the    end of options is encountered, ggggeeeettttooooppppttttssss exits
  4454.            with a return value greater than    zero.  OOOOPPPPTTTTIIIINNNNDDDD is set
  4455.            to the index of the first non-option argument, and nnnnaaaammmmeeee
  4456.            is set to ?.
  4457.  
  4458.            ggggeeeettttooooppppttttssss normally    parses the positional parameters, but
  4459.            if more arguments are given in _a_r_g_s, ggggeeeettttooooppppttttssss parses
  4460.            those instead.
  4461.  
  4462.            ggggeeeettttooooppppttttssss can report errors in two    ways.  If the first
  4463.            character of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error
  4464.            reporting is used.  In normal operation diagnostic
  4465.            messages    are printed when invalid options or missing
  4466.            option arguments    are encountered.  If the variable
  4467.            OOOOPPPPTTTTEEEERRRRRRRR is set to    0, no error messages will be
  4468.            displayed, even if the first character of _o_p_t_s_t_r_i_n_g is
  4469.            not a colon.
  4470.  
  4471.            If an invalid option is seen, ggggeeeettttooooppppttttssss places ? into
  4472.            _n_a_m_e and, if not    silent,    prints an error    message    and
  4473.            unsets OOOOPPPPTTTTAAAARRRRGGGG.  If ggggeeeettttooooppppttttssss is silent, the option
  4474.            character found is placed in OOOOPPPPTTTTAAAARRRRGGGG and no diagnostic
  4475.            message is printed.
  4476.  
  4477.            If a required argument is not found, and    ggggeeeettttooooppppttttssss    is not
  4478.            silent, a question mark (????) is placed in    _n_a_m_e, OOOOPPPPTTTTAAAARRRRGGGG
  4479.            is unset, and a diagnostic message is printed.  If
  4480.            ggggeeeettttooooppppttttssss is silent, then a colon (::::) is placed in    _n_a_m_e
  4481.            and OOOOPPPPTTTTAAAARRRRGGGG is set to the    option character found.
  4482.  
  4483.  
  4484.  
  4485.      Page 68                         (printed 3/25/99)
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4493.  
  4494.  
  4495.  
  4496.            ggggeeeettttooooppppttttssss returns true if an option, specified or
  4497.            unspecified, is found.  It returns false    if the end of
  4498.            options is encountered or an error occurs.
  4499.  
  4500.       hhhhaaaasssshhhh [----rrrr] [----pppp    _f_i_l_e_n_a_m_e] [_n_a_m_e]
  4501.            For each    _n_a_m_e, the full file name of the    command    is
  4502.            determined by searching the directories in $$$$PPPPAAAATTTTHHHH    and
  4503.            remembered.  If the ----pppp option is    supplied, no path
  4504.            search is performed, and    _f_i_l_e_n_a_m_e is used as the    full
  4505.            file name of the    command.  The ----rrrr option    causes the
  4506.            shell to    forget all remembered locations.  If no
  4507.            arguments are given, information    about remembered
  4508.            commands    is printed.  The return    status is true unless
  4509.            a _n_a_m_e is not found or an invalid option    is supplied.
  4510.  
  4511.       hhhheeeellllpppp [_p_a_t_t_e_r_n]
  4512.            Display helpful information about builtin commands.  If
  4513.            _p_a_t_t_e_r_n is specified, hhhheeeellllpppp gives    detailed help on all
  4514.            commands    matching _p_a_t_t_e_r_n; otherwise help for all the
  4515.            builtins    and shell control structures is    printed.  The
  4516.            return status is    0 unless no command matches _p_a_t_t_e_r_n.
  4517.  
  4518.       hhhhiiiissssttttoooorrrryyyy [----cccc] [_n]
  4519.       hhhhiiiissssttttoooorrrryyyy ----aaaannnnrrrrwwww    [_f_i_l_e_n_a_m_e]
  4520.       hhhhiiiissssttttoooorrrryyyy ----pppp _a_r_g [_a_r_g ...]
  4521.       hhhhiiiissssttttoooorrrryyyy ----ssss _a_r_g [_a_r_g ...]
  4522.            With no options,    display    the command history list with
  4523.            line numbers.  Lines listed with    a **** have been
  4524.            modified.  An argument of _n lists only the last _n
  4525.            lines.  If _f_i_l_e_n_a_m_e is supplied,    it is used as the name
  4526.            of the history file; if not, the    value of HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE is
  4527.            used.  Options, if supplied, have the following
  4528.            meanings:
  4529.            ----aaaa   Append the ``new'' history lines (history lines
  4530.             entered since the beginning    of the current bbbbaaaasssshhhh
  4531.             session) to    the history file.
  4532.            ----nnnn   Read the history lines not already read from the
  4533.             history file into the current history list.     These
  4534.             are    lines appended to the history file since the
  4535.             beginning of the current bbbbaaaasssshhhh session.
  4536.            ----rrrr   Read the contents of the history file and use them
  4537.             as the current history.
  4538.            ----wwww   Write the current history to the history file,
  4539.             overwriting    the history file's contents.
  4540.            ----cccc   Clear the history list by deleting all the
  4541.             entries.
  4542.            ----pppp   Perform history substitution on the    following _a_r_g_s
  4543.             and    display    the result on the standard output.
  4544.             Does not store the results in the history list.
  4545.             Each _a_r_g must be quoted to disable normal history
  4546.             expansion.
  4547.            ----ssss   Store the _a_r_g_s in the history list as a single
  4548.  
  4549.  
  4550.  
  4551.      Page 69                         (printed 3/25/99)
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4559.  
  4560.  
  4561.  
  4562.             entry.  The    last command in    the history list is
  4563.             removed before the _a_r_g_s are    added.
  4564.  
  4565.            The return value    is 0 unless an invalid option is
  4566.            encountered or an error occurs while reading or writing
  4567.            the history file.
  4568.  
  4569.       jjjjoooobbbbssss [----llllnnnnpppprrrrssss]    [ _j_o_b_s_p_e_c ... ]
  4570.       jjjjoooobbbbssss ----xxxx _c_o_m_m_a_n_d [ _a_r_g_s ... ]
  4571.            The first form lists the    active jobs.  The options have
  4572.            the following meanings:
  4573.            ----llll   List process IDs in    addition to the    normal
  4574.             information.
  4575.            ----pppp   List only the process ID of    the job's process
  4576.             group leader.
  4577.            ----nnnn   Display information    only about jobs    that have
  4578.             changed status since the user was last notified of
  4579.             their status.
  4580.            ----rrrr   Restrict output to running jobs.
  4581.            ----ssss   Restrict output to stopped jobs.
  4582.  
  4583.            If _j_o_b_s_p_e_c is given, output is restricted to
  4584.            information about that job.  The    return status is 0
  4585.            unless an invalid option    is encountered or an invalid
  4586.            _j_o_b_s_p_e_c is supplied.
  4587.  
  4588.            If the ----xxxx option    is supplied, jjjjoooobbbbssss replaces any _j_o_b_s_p_e_c
  4589.            found in    _c_o_m_m_a_n_d    or _a_r_g_s    with the corresponding process
  4590.            group ID, and executes _c_o_m_m_a_n_d passing it _a_r_g_s,
  4591.            returning its exit status.
  4592.  
  4593.       kkkkiiiillllllll [----ssss _s_i_g_s_p_e_c | ----nnnn    _s_i_g_n_u_m | ----_s_i_g_s_p_e_c] [_p_i_d    | _j_o_b_s_p_e_c] ...
  4594.       kkkkiiiillllllll ----llll [_s_i_g_s_p_e_c | _e_x_i_t__s_t_a_t_u_s]
  4595.            Send the    signal named by    _s_i_g_s_p_e_c    or _s_i_g_n_u_m to the
  4596.            processes named by _p_i_d or _j_o_b_s_p_e_c.  _s_i_g_s_p_e_c is either a
  4597.            signal name such    as SSSSIIIIGGGGKKKKIIIILLLLLLLL or a    signal number; _s_i_g_n_u_m
  4598.            is a signal number.  If _s_i_g_s_p_e_c is a signal name, the
  4599.            name may    be given with or without the SSSSIIIIGGGG prefix.  If
  4600.            _s_i_g_s_p_e_c is not present, then SSSSIIIIGGGGTTTTEEEERRRRMMMM is assumed.     An
  4601.            argument    of ----llll lists the    signal names.  If any
  4602.            arguments are supplied when ----llll is given,    the names of
  4603.            the signals corresponding to the    arguments are listed,
  4604.            and the return status is    0.  The    _e_x_i_t__s_t_a_t_u_s argument
  4605.            to ----llll is    a number specifying either a signal number or
  4606.            the exit    status of a process terminated by a signal.
  4607.            kkkkiiiillllllll returns true if at least one signal    was
  4608.            successfully sent, or false if an error occurs or an
  4609.            invalid option is encountered.
  4610.  
  4611.       lllleeeetttt _a_r_g [_a_r_g ...]
  4612.            Each _a_r_g    is an arithmetic expression to be evaluated
  4613.            (see AAAARRRRIIIITTTTHHHHMMMMEEEETTTTIIIICCCC EEEEVVVVAAAALLLLUUUUAAAATTTTIIIIOOOONNNN).  If    the last _a_r_g evaluates
  4614.  
  4615.  
  4616.  
  4617.      Page 70                         (printed 3/25/99)
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4625.  
  4626.  
  4627.  
  4628.            to 0, lllleeeetttt returns 1; 0 is returned otherwise.
  4629.  
  4630.       llllooooccccaaaallll    [_n_a_m_e[=_v_a_l_u_e] ...]
  4631.            For each    argument, a local variable named _n_a_m_e is
  4632.            created,    and assigned _v_a_l_u_e.  When llllooooccccaaaallll    is used    within
  4633.            a function, it causes the variable _n_a_m_e to have a
  4634.            visible scope restricted    to that    function and its
  4635.            children.  With no operands, llllooooccccaaaallll writes a list    of
  4636.            local variables to the standard output.    It is an error
  4637.            to use llllooooccccaaaallll when not within a function.     The return
  4638.            status is 0 unless llllooooccccaaaallll    is used    outside    a function, or
  4639.            an invalid _n_a_m_e is supplied.
  4640.  
  4641.       llllooooggggoooouuuutttt
  4642.            Exit a login shell.
  4643.  
  4644.       ppppooooppppdddd [-nnnn] [+_n] [-_n]
  4645.            Removes entries from the    directory stack.  With no
  4646.            arguments, removes the top directory from the stack,
  4647.            and performs a ccccdddd to the    new top    directory.  Arguments,
  4648.            if supplied, have the following meanings:
  4649.            ++++_n   Removes the    _nth entry counting from    the left of
  4650.             the    list shown by ddddiiiirrrrssss, starting with zero.     For
  4651.             example: ``popd +0'' removes the first directory,
  4652.             ``popd +1''    the second.
  4653.            ----_n   Removes the    _nth entry counting from    the right of
  4654.             the    list shown by ddddiiiirrrrssss, starting with zero.     For
  4655.             example: ``popd -0'' removes the last directory,
  4656.             ``popd -1''    the next to last.
  4657.            ----nnnn   Suppresses the normal change of directory when
  4658.             removing directories from the stack, so that only
  4659.             the    stack is manipulated.
  4660.  
  4661.            If the ppppooooppppdddd command is successful, a ddddiiiirrrrssss is performed
  4662.            as well,    and the    return status is 0.  ppppooooppppdddd returns
  4663.            false if    an invalid option is encountered, the
  4664.            directory stack is empty, a non-existent    directory
  4665.            stack entry is specified, or the    directory change
  4666.            fails.
  4667.  
  4668.       pppprrrriiiinnnnttttffff _f_o_r_m_a_t    [_a_r_g_u_m_e_n_t_s]
  4669.            Write the formatted _a_r_g_u_m_e_n_t_s to    the standard output
  4670.            under the control of the    _f_o_r_m_a_t.     The _f_o_r_m_a_t is a
  4671.            character string    which contains three types of objects:
  4672.            plain characters, which are simply copied to standard
  4673.            output, character escape    sequences, which are converted
  4674.            and copied to the standard output, and format
  4675.            specifications, each of which causes printing of    the
  4676.            next successive _a_r_g_u_m_e_n_t.  In addition to the standard
  4677.            _p_r_i_n_t_f(1) formats, %b causes pppprrrriiiinnnnttttffff to expand backslash
  4678.            escape sequences    in the corresponding _a_r_g_u_m_e_n_t, and %q
  4679.            causes pppprrrriiiinnnnttttffff to    output the corresponding _a_r_g_u_m_e_n_t in a
  4680.  
  4681.  
  4682.  
  4683.      Page 71                         (printed 3/25/99)
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4691.  
  4692.  
  4693.  
  4694.            format that can be reused as shell input.
  4695.  
  4696.            The _f_o_r_m_a_t is reused as necessary to consume all    of the
  4697.            _a_r_g_u_m_e_n_t_s.  If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than
  4698.            are supplied, the extra format specifications behave as
  4699.            if a zero value or null string, as appropriate, had
  4700.            been supplied.
  4701.  
  4702.       ppppuuuusssshhhhdddd    [----nnnn] [_d_i_r]
  4703.       ppppuuuusssshhhhdddd    [----nnnn] [+_n] [-_n]
  4704.            Adds a directory    to the top of the directory stack, or
  4705.            rotates the stack, making the new top of    the stack the
  4706.            current working directory.  With    no arguments,
  4707.            exchanges the top two directories and returns 0,    unless
  4708.            the directory stack is empty.  Arguments, if supplied,
  4709.            have the    following meanings:
  4710.            ++++_n   Rotates the    stack so that the _nth directory
  4711.             (counting from the left of the list    shown by ddddiiiirrrrssss,
  4712.             starting with zero)    is at the top.
  4713.            ----_n   Rotates the    stack so that the _nth directory
  4714.             (counting from the right of    the list shown by
  4715.             ddddiiiirrrrssss, starting with    zero) is at the    top.
  4716.            ----nnnn   Suppresses the normal change of directory when
  4717.             adding directories to the stack, so    that only the
  4718.             stack is manipulated.
  4719.            ddddiiiirrrr  Adds _d_i_r to    the directory stack at the top,    making
  4720.             it the new current working directory.
  4721.  
  4722.            If the ppppuuuusssshhhhdddd command is successful, a ddddiiiirrrrssss is performed
  4723.            as well.     If the    first form is used, ppppuuuusssshhhhdddd returns 0
  4724.            unless the cd to    _d_i_r fails.  With the second form,
  4725.            ppppuuuusssshhhhdddd returns 0 unless the directory stack is empty, a
  4726.            non-existent directory stack element is specified, or
  4727.            the directory change to the specified new current
  4728.            directory fails.
  4729.  
  4730.       ppppwwwwdddd [----LLLLPPPP]
  4731.            Print the absolute file name of the current working
  4732.            directory.  The file name printed contains no symbolic
  4733.            links if    the ----PPPP option is supplied or the ----oooo pppphhhhyyyyssssiiiiccccaaaallll
  4734.            option to the sssseeeetttt builtin command is enabled.  If the
  4735.            ----LLLL option is used, symbolic links are followed.    The
  4736.            return status is    0 unless an error occurs while reading
  4737.            the name    of the current directory or an invalid option
  4738.            is supplied.
  4739.  
  4740.       rrrreeeeaaaadddd [----eeeerrrr] [----aaaa _a_n_a_m_e]    [----pppp _p_r_o_m_p_t] [_n_a_m_e ...]
  4741.            One line    is read    from the standard input, and the first
  4742.            word is assigned    to the first _n_a_m_e, the second word to
  4743.            the second _n_a_m_e,    and so on, with    leftover words and
  4744.            their intervening separators assigned to    the last _n_a_m_e.
  4745.            If there    are fewer words    read from the standard input
  4746.  
  4747.  
  4748.  
  4749.      Page 72                         (printed 3/25/99)
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4757.  
  4758.  
  4759.  
  4760.            than names, the remaining names are assigned empty
  4761.            values.    The characters in IIIIFFFFSSSS are used to split    the
  4762.            line into words.     The backslash character (\\\\) may be
  4763.            used to remove any special meaning for the next
  4764.            character read and for line continuation.  Options, if
  4765.            supplied, have the following meanings:
  4766.            ----rrrr   Backslash does not act as an escape    character.
  4767.             The    backslash is considered    to be part of the
  4768.             line.  In particular, a backslash-newline pair may
  4769.             not    be used    as a line continuation.
  4770.            ----pppp   Display _p_r_o_m_p_t, without a trailing newline,    before
  4771.             attempting to read any input.  The prompt is
  4772.             displayed only if input is coming from a terminal.
  4773.            ----aaaa   The    words are assigned to sequential indices of
  4774.             the    array variable _a_n_a_m_e, starting at 0.  _a_n_a_m_e is
  4775.             unset before any new values    are assigned.  Other
  4776.             _n_a_m_e arguments are ignored.
  4777.            ----eeee   If the standard input is coming from a terminal,
  4778.             rrrreeeeaaaaddddlllliiiinnnneeee (see RRRREEEEAAAADDDDLLLLIIIINNNNEEEE above) is used to obtain
  4779.             the    line.
  4780.  
  4781.            If no _n_a_m_e_s are supplied, the line read is assigned to
  4782.            the variable RRRREEEEPPPPLLLLYYYY.  The    return code is zero, unless
  4783.            end-of-file is encountered.
  4784.  
  4785.       rrrreeeeaaaaddddoooonnnnllllyyyy [----aaaappppffff] [_n_a_m_e    ...]
  4786.            The given _n_a_m_e_s are marked readonly; the    values of
  4787.            these _n_a_m_e_s may not be changed by subsequent
  4788.            assignment.  If the ----ffff option is    supplied, the
  4789.            functions corresponding to the _n_a_m_e_s are    so marked.
  4790.            The ----aaaa option restricts the variables to    arrays.     If no
  4791.            _n_a_m_e arguments are given, or if the ----pppp option is
  4792.            supplied, a list    of all readonly    names is printed.  The
  4793.            ----pppp option causes    output to be displayed in a format
  4794.            thatmay be reused as input.  The    return status is 0
  4795.            unless an invalid option    is encountered,    one of the
  4796.            _n_a_m_e_s is    not a valid shell variable name, or ----ffff is
  4797.            supplied    with a _n_a_m_e that is not    a function.
  4798.  
  4799.       rrrreeeettttuuuurrrrnnnn [_n]
  4800.            Causes a    function to exit with the return value
  4801.            specified by _n.    If _n is    omitted, the return status is
  4802.            that of the last    command    executed in the    function body.
  4803.            If used outside a function, but during execution    of a
  4804.            script by the .... (ssssoooouuuurrrrcccceeee)    command, it causes the shell
  4805.            to stop executing that script and return    either _n or
  4806.            the exit    status of the last command executed within the
  4807.            script as the exit status of the    script.     If used
  4808.            outside a function and not during execution of a    script
  4809.            by ...., the return    status is false.
  4810.  
  4811.       sssseeeetttt [--------aaaabbbbeeeeffffhhhhkkkkmmmmnnnnppppttttuuuuvvvvxxxxBBBBCCCCHHHHPPPP] [----oooo    _o_p_t_i_o_n]    [_a_r_g ...]
  4812.  
  4813.  
  4814.  
  4815.      Page 73                         (printed 3/25/99)
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4823.  
  4824.  
  4825.  
  4826.            Without options,    the name and value of each shell
  4827.            variable    are displayed in a format that can be reused
  4828.            as input.  The output is    sorted according to the
  4829.            current locale.    When options are specified, they set
  4830.            or unset    shell attributes.  Any arguments remaining
  4831.            after the options are processed are treated as values
  4832.            for the positional parameters and are assigned, in
  4833.            order, to $$$$1111, $$$$2222, ............ $$$$_n.  Options, if specified, have
  4834.            the following meanings:
  4835.            ----aaaa      Automatically mark variables which are modified
  4836.                or created for export to    the environment    of
  4837.                subsequent commands.
  4838.            ----bbbb      Report the status of terminated background jobs
  4839.                immediately, rather than    before the next
  4840.                primary prompt.    This is    effective only when
  4841.                job control is enabled.
  4842.            ----eeee      Exit immediately    if a _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSSSHHHHEEEELLLLLLLL
  4843.                GGGGRRRRAAAAMMMMMMMMAAAARRRR above) exits with a non-zero status.
  4844.                The shell does not exit if the command that
  4845.                fails is    part of    an _u_n_t_i_l or _w_h_i_l_e loop,    part
  4846.                of an _i_f    statement, part    of a &&&&&&&&    or |||||||| list, or
  4847.                if the command's    return value is    being inverted
  4848.                via !!!!.
  4849.            ----ffff      Disable pathname    expansion.
  4850.            ----hhhh      Remember    the location of    commands as they are
  4851.                looked up for execution.     This is enabled by
  4852.                default.
  4853.            ----kkkk      All arguments in    the form of assignment
  4854.                statements are placed in    the environment    for a
  4855.                command,    not just those that precede the
  4856.                command name.
  4857.            ----mmmm      Monitor mode.  Job control is enabled.  This
  4858.                option is on by default for interactive shells
  4859.                on systems that support it (see JJJJOOOOBBBB CCCCOOOONNNNTTTTRRRROOOOLLLL
  4860.                above).    Background processes run in a separate
  4861.                process group and a line    containing their exit
  4862.                status is printed upon their completion.
  4863.            ----nnnn      Read commands but do not    execute    them.  This
  4864.                may be used to check a shell script for syntax
  4865.                errors.    This is    ignored    by interactive shells.
  4866.            ----oooo _o_p_t_i_o_n-_n_a_m_e
  4867.                The _o_p_t_i_o_n-_n_a_m_e can be one of the following:
  4868.                aaaalllllllleeeexxxxppppoooorrrrtttt
  4869.                    Same as ----aaaa.
  4870.                bbbbrrrraaaacccceeeeeeeexxxxppppaaaannnndddd
  4871.                    Same as ----BBBB.
  4872.                eeeemmmmaaaaccccssss   Use an emacs-style command line editing
  4873.                    interface.  This    is enabled by default
  4874.                    when the    shell is interactive, unless
  4875.                    the shell is started with the
  4876.                    --------nnnnooooeeeeddddiiiittttiiiinnnngggg option.
  4877.                eeeerrrrrrrreeeexxxxiiiitttt Same as ----eeee.
  4878.  
  4879.  
  4880.  
  4881.      Page 74                         (printed 3/25/99)
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4889.  
  4890.  
  4891.  
  4892.                hhhhaaaasssshhhhaaaallllllll Same as ----hhhh.
  4893.                hhhhiiiisssstttteeeexxxxppppaaaannnndddd
  4894.                    Same as ----HHHH.
  4895.                hhhhiiiissssttttoooorrrryyyy Enable command history, as described
  4896.                    above under HHHHIIIISSSSTTTTOOOORRRRYYYY.  This option is on
  4897.                    by default in interactive shells.
  4898.                iiiiggggnnnnoooorrrreeeeeeeeooooffff
  4899.                    The effect is as    if the shell command
  4900.                    IGNOREEOF=10 had    been executed (see
  4901.                    SSSShhhheeeellllllll VVVVaaaarrrriiiiaaaabbbblllleeeessss above).
  4902.                kkkkeeeeyyyywwwwoooorrrrdddd Same as ----kkkk.
  4903.                mmmmoooonnnniiiittttoooorrrr Same as ----mmmm.
  4904.                nnnnoooocccclllloooobbbbbbbbeeeerrrr
  4905.                    Same as ----CCCC.
  4906.                nnnnooooeeeexxxxeeeecccc  Same as ----nnnn.
  4907.                nnnnoooogggglllloooobbbb  Same as ----ffff.
  4908.                nnnnoooottttiiiiffffyyyy  Same as ----bbbb.
  4909.                nnnnoooouuuunnnnsssseeeetttt Same as ----uuuu.
  4910.                oooonnnneeeeccccmmmmdddd  Same as ----tttt.
  4911.                pppphhhhyyyyssssiiiiccccaaaallll
  4912.                    Same as ----PPPP.
  4913.                ppppoooossssiiiixxxx   Change the behavior of bbbbaaaasssshhhh where the
  4914.                    default operation differs from the
  4915.                    POSIX 1003.2 standard to    match the
  4916.                    standard.
  4917.                pppprrrriiiivvvviiiilllleeeeggggeeeedddd
  4918.                    Same as ----pppp.
  4919.                vvvveeeerrrrbbbboooosssseeee Same as ----vvvv.
  4920.                vvvviiii      Use a vi-style command line editing
  4921.                    interface.
  4922.                xxxxttttrrrraaaacccceeee  Same as ----xxxx.
  4923.  
  4924.                If ----oooo is    supplied with no _o_p_t_i_o_n-_n_a_m_e, the
  4925.                values of the current options are printed.  If
  4926.                ++++oooo is supplied with no _o_p_t_i_o_n-_n_a_m_e, a series of
  4927.                sssseeeetttt commands to recreate    the current option
  4928.                settings    is displayed on    the standard output.
  4929.            ----pppp      Turn on _p_r_i_v_i_l_e_g_e_d mode.     In this mode, the
  4930.                $$$$EEEENNNNVVVV and    $$$$BBBBAAAASSSSHHHH____EEEENNNNVVVV files    are not    processed,
  4931.                shell functions are not inherited from the
  4932.                environment, and    the SSSSHHHHEEEELLLLLLLLOOOOPPPPTTTTSSSS variable,    if it
  4933.                appears in the environment, is ignored.    If the
  4934.                shell is    started    with the effective user
  4935.                (group) id not equal to the real    user (group)
  4936.                id, and the ----pppp option is    not supplied, these
  4937.                actions are taken and the effective user    id is
  4938.                set to the real user id.     If the    ----pppp option is
  4939.                supplied    at startup, the    effective user id is
  4940.                not reset.  Turning this    option off causes the
  4941.                effective user and group    ids to be set to the
  4942.                real user and group ids.
  4943.            ----tttt      Exit after reading and executing    one command.
  4944.  
  4945.  
  4946.  
  4947.      Page 75                         (printed 3/25/99)
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  4955.  
  4956.  
  4957.  
  4958.            ----uuuu      Treat unset variables as    an error when
  4959.                performing parameter expansion.    If expansion
  4960.                is attempted on an unset    variable, the shell
  4961.                prints an error message,    and, if    not
  4962.                interactive, exits with a non-zero status.
  4963.            ----vvvv      Print shell input lines as they are read.
  4964.            ----xxxx      After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, display
  4965.                the expanded value of PPPPSSSS4444, followed by the
  4966.                command and its expanded    arguments.
  4967.            ----BBBB      The shell performs brace    expansion (see BBBBrrrraaaacccceeee
  4968.                EEEExxxxppppaaaannnnssssiiiioooonnnn above).  This is on by    default.
  4969.            ----CCCC      If set, bbbbaaaasssshhhh does not overwrite an existing
  4970.                file with the >>>>,    >>>>&&&&, and    <<<<>>>> redirection
  4971.                operators.  This    may be overridden when
  4972.                creating    output files by    using the redirection
  4973.                operator    >>>>|||| instead of >>>>.
  4974.            ----HHHH      Enable !!!!    style history substitution.  This
  4975.                option is on by default when the    shell is
  4976.                interactive.
  4977.            ----PPPP      If set, the shell does not follow symbolic
  4978.                links when executing commands such as ccccdddd    that
  4979.                change the current working directory.  It uses
  4980.                the physical directory structure    instead.  By
  4981.                default,    bbbbaaaasssshhhh follows the logical chain of
  4982.                directories when    performing commands which
  4983.                change the current directory.
  4984.            --------      If no arguments follow this option, then    the
  4985.                positional parameters are unset.     Otherwise,
  4986.                the positional parameters are set to the    _a_r_gs,
  4987.                even if some of them begin with a ----.
  4988.            ----       Signal the end of options, cause    all remaining
  4989.                _a_r_gs to be assigned to the positional
  4990.                parameters.  The    ----xxxx and ----vvvv options are turned
  4991.                off.  If    there are no _a_r_gs, the positional
  4992.                parameters remain unchanged.
  4993.  
  4994.            The options are off by default unless otherwise noted.
  4995.            Using + rather than - causes these options to be    turned
  4996.            off.  The options can also be specified as arguments to
  4997.            an invocation of    the shell.  The    current    set of options
  4998.            may be found in $$$$----.  The    return status is always    true
  4999.            unless an invalid option    is encountered.
  5000.  
  5001.       sssshhhhiiiifffftttt    [_n]
  5002.            The positional parameters from _n+1 ... are renamed to
  5003.            $$$$1111 ................ Parameters represented by the numbers $$$$####    down
  5004.            to $$$$####-_n+1 are unset.  _n must be a non-negative number
  5005.            less than or equal to $$$$####.  If _n is 0, no    parameters are
  5006.            changed.     If _n is not given, it is assumed to be    1.  If
  5007.            _n is greater than $$$$####, the positional parameters are not
  5008.            changed.     The return status is greater than zero    if _n
  5009.            is greater than $$$$#### or less than zero; otherwise 0.
  5010.  
  5011.  
  5012.  
  5013.      Page 76                         (printed 3/25/99)
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5021.  
  5022.  
  5023.  
  5024.       sssshhhhoooopppptttt    [----ppppqqqqssssuuuu]    [----oooo] [_o_p_t_n_a_m_e ...]
  5025.            Toggle the values of variables controlling optional
  5026.            shell behavior.    With no    options, or with the ----pppp
  5027.            option, a list of all settable options is displayed,
  5028.            with an indication of whether or    not each is set.  The
  5029.            ----pppp option causes    output to be displayed in a form that
  5030.            may be reused as    input.    Other options have the
  5031.            following meanings:
  5032.            ----ssss   Enable (set) each _o_p_t_n_a_m_e.
  5033.            ----uuuu   Disable (unset) each _o_p_t_n_a_m_e.
  5034.            ----qqqq   Suppresses normal output (quiet mode); the return
  5035.             status indicates whether the _o_p_t_n_a_m_e is set    or
  5036.             unset.  If multiple    _o_p_t_n_a_m_e    arguments are given
  5037.             with ----qqqq, the return    status is zero if all _o_p_t_n_a_m_e_s
  5038.             are    enabled; non-zero otherwise.
  5039.            ----oooo   Restricts the values of _o_p_t_n_a_m_e to be those
  5040.             defined for    the ----oooo option to the sssseeeetttt builtin.
  5041.  
  5042.            If either ----ssss or ----uuuu is used with no _o_p_t_n_a_m_e arguments,
  5043.            the display is limited to those options which are set
  5044.            or unset, respectively.    Unless otherwise noted,    the
  5045.            sssshhhhoooopppptttt options are disabled (unset) by default.
  5046.  
  5047.            The return status when listing options is zero if all
  5048.            _o_p_t_n_a_m_e_s    are enabled, non-zero otherwise.  When setting
  5049.            or unsetting options, the return    status is zero unless
  5050.            an _o_p_t_n_a_m_e is not a valid shell option.
  5051.  
  5052.            The list    of sssshhhhoooopppptttt options is:
  5053.  
  5054.            ccccddddaaaabbbblllleeee____vvvvaaaarrrrssss
  5055.                If set, an argument to the ccccdddd builtin command
  5056.                that is not a directory is assumed to be    the
  5057.                name of a variable whose    value is the directory
  5058.                to change to.
  5059.            ccccddddssssppppeeeellllllll If set, minor errors in the spelling of a
  5060.                directory component in a    ccccdddd command will    be
  5061.                corrected.  The errors checked for are
  5062.                transposed characters, a    missing    character, and
  5063.                one character too many.    If a correction    is
  5064.                found, the corrected file name is printed, and
  5065.                the command proceeds.  This option is only used
  5066.                by interactive shells.
  5067.            cccchhhheeeecccckkkkhhhhaaaasssshhhh
  5068.                If set, bbbbaaaasssshhhh checks that    a command found    in the
  5069.                hash table exists before    trying to execute it.
  5070.                If a hashed command no longer exists, a normal
  5071.                path search is performed.
  5072.            cccchhhheeeecccckkkkwwwwiiiinnnnssssiiiizzzzeeee
  5073.                If set, bbbbaaaasssshhhh checks the window size after each
  5074.                command and, if necessary, updates the values
  5075.                of LLLLIIIINNNNEEEESSSS    and CCCCOOOOLLLLUUUUMMMMNNNNSSSS.
  5076.  
  5077.  
  5078.  
  5079.      Page 77                         (printed 3/25/99)
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5087.  
  5088.  
  5089.  
  5090.            ccccmmmmddddhhhhiiiisssstttt If set, bbbbaaaasssshhhh attempts to    save all lines of a
  5091.                multiple-line command in    the same history
  5092.                entry.  This allows easy    re-editing of multi-
  5093.                line commands.
  5094.            ddddoooottttgggglllloooobbbb If set, bbbbaaaasssshhhh includes filenames beginning with
  5095.                a `.' in    the results of pathname    expansion.
  5096.            eeeexxxxeeeeccccffffaaaaiiiillll
  5097.                If set, a non-interactive shell will not    exit
  5098.                if it cannot execute the    file specified as an
  5099.                argument    to the eeeexxxxeeeecccc builtin command.  An
  5100.                interactive shell does not exit if eeeexxxxeeeecccc fails.
  5101.            eeeexxxxppppaaaannnndddd____aaaalllliiiiaaaasssseeeessss
  5102.                If set, aliases are expanded as described above
  5103.                under AAAALLLLIIIIAAAASSSSEEEESSSS.  This option is enabled by
  5104.                default for interactive shells.
  5105.            eeeexxxxttttgggglllloooobbbb If set, the extended pattern matching features
  5106.                described above under PPPPaaaatttthhhhnnnnaaaammmmeeee EEEExxxxppppaaaannnnssssiiiioooonnnn    are
  5107.                enabled.
  5108.            hhhhiiiissssttttaaaappppppppeeeennnndddd
  5109.                If set, the history list    is appended to the
  5110.                file named by the value of the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
  5111.                variable    when the shell exits, rather than
  5112.                overwriting the file.
  5113.            hhhhiiiissssttttrrrreeeeeeeeddddiiiitttt
  5114.                If set, and rrrreeeeaaaaddddlllliiiinnnneeee is being used, a user is
  5115.                given the opportunity to    re-edit    a failed
  5116.                history substitution.
  5117.            hhhhiiiissssttttvvvveeeerrrriiiiffffyyyy
  5118.                If set, and rrrreeeeaaaaddddlllliiiinnnneeee is being used, the results
  5119.                of history substitution are not immediately
  5120.                passed to the shell parser.  Instead, the
  5121.                resulting line is loaded    into the rrrreeeeaaaaddddlllliiiinnnneeee
  5122.                editing buffer, allowing    further    modification.
  5123.            hhhhoooossssttttccccoooommmmpppplllleeeetttteeee
  5124.                If set, and rrrreeeeaaaaddddlllliiiinnnneeee is being used, bbbbaaaasssshhhh    will
  5125.                attempt to perform hostname completion when a
  5126.                word containing a @@@@ is being completed (see
  5127.                CCCCoooommmmpppplllleeeettttiiiinnnngggg under    RRRREEEEAAAADDDDLLLLIIIINNNNEEEE above).  This is
  5128.                enabled by default.
  5129.            hhhhuuuuppppoooonnnneeeexxxxiiiitttt
  5130.                If set, bbbbaaaasssshhhh will send SSSSIIIIGGGGHHHHUUUUPPPP to    all jobs when
  5131.                an interactive login shell exits.
  5132.            iiiinnnntttteeeerrrraaaaccccttttiiiivvvveeee____ccccoooommmmmmmmeeeennnnttttssss
  5133.                If set, allow a word beginning with #### to    cause
  5134.                that word and all remaining characters on that
  5135.                line to be ignored in an    interactive shell (see
  5136.                CCCCOOOOMMMMMMMMEEEENNNNTTTTSSSS    above).     This option is    enabled    by
  5137.                default.
  5138.            lllliiiitttthhhhiiiisssstttt If set, and the ccccmmmmddddhhhhiiiisssstttt option is enabled,
  5139.                multi-line commands are saved to    the history
  5140.                with embedded newlines rather than using
  5141.                semicolon separators where possible.
  5142.  
  5143.  
  5144.  
  5145.      Page 78                         (printed 3/25/99)
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5153.  
  5154.  
  5155.  
  5156.            mmmmaaaaiiiillllwwwwaaaarrrrnnnn
  5157.                If set, and a file that bbbbaaaasssshhhh is checking    for
  5158.                mail has    been accessed since the    last time it
  5159.                was checked, the    message    ``The mail in _m_a_i_l_f_i_l_e
  5160.                has been    read'' is displayed.
  5161.            nnnnooooccccaaaasssseeeegggglllloooobbbb
  5162.                If set, bbbbaaaasssshhhh matches filenames in a
  5163.                case-insensitive    fashion    when performing
  5164.                pathname    expansion (see PPPPaaaatttthhhhnnnnaaaammmmeeee    EEEExxxxppppaaaannnnssssiiiioooonnnn
  5165.                above).
  5166.            nnnnuuuullllllllgggglllloooobbbb
  5167.                If set, bbbbaaaasssshhhh allows patterns which match    no
  5168.                files (see PPPPaaaatttthhhhnnnnaaaammmmeeee EEEExxxxppppaaaannnnssssiiiioooonnnn above) to expand
  5169.                to a null string, rather    than themselves.
  5170.            pppprrrroooommmmppppttttvvvvaaaarrrrssss
  5171.                If set, prompt strings undergo variable and
  5172.                parameter expansion after being expanded    as
  5173.                described in PPPPRRRROOOOMMMMPPPPTTTTIIIINNNNGGGG above.  This option is
  5174.                enabled by default.
  5175.            rrrreeeessssttttrrrriiiicccctttteeeedddd____sssshhhheeeellllllll
  5176.                The shell sets this option if it    is started in
  5177.                restricted mode (see RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD SSSSHHHHEEEELLLLLLLL below).
  5178.                The value may not be changed.  This is not
  5179.                reset when the startup files are    executed,
  5180.                allowing    the startup files to discover whether
  5181.                or not a    shell is restricted.
  5182.            sssshhhhiiiifffftttt____vvvveeeerrrrbbbboooosssseeee
  5183.                If set, the sssshhhhiiiifffftttt builtin prints    an error
  5184.                message when the    shift count exceeds the    number
  5185.                of positional parameters.
  5186.            ssssoooouuuurrrrcccceeeeppppaaaatttthhhh
  5187.                If set, the ssssoooouuuurrrrcccceeee (....) builtin uses the value
  5188.                of PPPPAAAATTTTHHHH to find the directory containing    the
  5189.                file supplied as    an argument.  This option is
  5190.                enabled by default.
  5191.       ssssuuuussssppppeeeennnndddd [----ffff]
  5192.            Suspend the execution of    this shell until it receives a
  5193.            SSSSIIIIGGGGCCCCOOOONNNNTTTT signal.    The ----ffff option says not to complain if
  5194.            this is a login shell; just suspend anyway.  The    return
  5195.            status is 0 unless the shell is a login shell and ----ffff is
  5196.            not supplied, or    if job control is not enabled.
  5197.       tttteeeesssstttt _e_x_p_r
  5198.       [[[[ _e_x_p_r ]]]]
  5199.            Return a    status of 0 or 1 depending on the evaluation
  5200.            of the conditional expression _e_x_p_r.  Each operator and
  5201.            operand must be a separate argument.  Expressions are
  5202.            composed    of the primaries described above under
  5203.            CCCCOOOONNNNDDDDIIIITTTTIIIIOOOONNNNAAAALLLL EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS.
  5204.  
  5205.            Expressions may be combined using the following
  5206.            operators, listed in decreasing order of    precedence.
  5207.            !!!! _e_x_p_r
  5208.  
  5209.  
  5210.  
  5211.      Page 79                         (printed 3/25/99)
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5219.  
  5220.  
  5221.  
  5222.             True if _e_x_p_r is false.
  5223.            (((( _e_x_p_r ))))
  5224.             Returns the    value of _e_x_p_r.    This may be used to
  5225.             override the normal    precedence of operators.
  5226.            _e_x_p_r_1 -aaaa    _e_x_p_r_2
  5227.             True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
  5228.            _e_x_p_r_1 -oooo    _e_x_p_r_2
  5229.             True if either _e_x_p_r_1 or _e_x_p_r_2 is true.
  5230.  
  5231.            tttteeeesssstttt and    [[[[ evaluate conditional expressions using a set
  5232.            of rules    based on the number of arguments.
  5233.  
  5234.            0 arguments
  5235.             The    expression is false.
  5236.            1 argument
  5237.             The    expression is true if and only if the argument
  5238.             is not null.
  5239.            2 arguments
  5240.             If the first argument is !!!!,    the expression is true
  5241.             if and only    if the second argument is null.     If
  5242.             the    first argument is one of the unary conditional
  5243.             operators listed above under CCCCOOOONNNNDDDDIIIITTTTIIIIOOOONNNNAAAALLLL
  5244.             EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS, the expression    is true    if the unary
  5245.             test is true.  If the first    argument is not    a
  5246.             valid unary    conditional operator, the expression
  5247.             is false.
  5248.            3 arguments
  5249.             If the second argument is one of the binary
  5250.             conditional    operators listed above under
  5251.             CCCCOOOONNNNDDDDIIIITTTTIIIIOOOONNNNAAAALLLL    EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS, the result    of the
  5252.             expression is the result of    the binary test    using
  5253.             the    first and third    arguments as operands.    If the
  5254.             first argument is !!!!, the value is the negation of
  5255.             the    two-argument test using    the second and third
  5256.             arguments.    If the first argument is exactly (((( and
  5257.             the    third argument is exactly )))), the result    is the
  5258.             one-argument test of the second argument.
  5259.             Otherwise, the expression is false.     The ----aaaa    and ----oooo
  5260.             operators are considered binary operators in this
  5261.             case.
  5262.            4 arguments
  5263.             If the first argument is !!!!,    the result is the
  5264.             negation of    the three-argument expression composed
  5265.             of the remaining arguments.     Otherwise, the
  5266.             expression is parsed and evaluated according to
  5267.             precedence using the rules listed above.
  5268.            5 or more arguments
  5269.             The    expression is parsed and evaluated according
  5270.             to precedence using    the rules listed above.
  5271.  
  5272.       ttttiiiimmmmeeeessss
  5273.            Print the accumulated user and system times for the
  5274.  
  5275.  
  5276.  
  5277.      Page 80                         (printed 3/25/99)
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5285.  
  5286.  
  5287.  
  5288.            shell and for processes run from    the shell.  The    return
  5289.            status is 0.
  5290.  
  5291.       ttttrrrraaaapppp [----llllpppp] [_a_r_g] [_s_i_g_s_p_e_c ...]
  5292.            The command _a_r_g is to be    read and executed when the
  5293.            shell receives signal(s)    _s_i_g_s_p_e_c.  If _a_r_g is absent or
  5294.            ----, all specified    signals    are reset to their original
  5295.            values (the values they had upon    entrance to the
  5296.            shell).    If _a_r_g is the null string the signal specified
  5297.            by each _s_i_g_s_p_e_c is ignored by the shell and by the
  5298.            commands    it invokes.  If    _a_r_g is ----pppp then the trap
  5299.            commands    associated with    each _s_i_g_s_p_e_c are displayed.
  5300.            If no arguments are supplied or if only ----pppp is given,
  5301.            ttttrrrraaaapppp prints the list of commands    associated with    each
  5302.            signal number.  Each _s_i_g_s_p_e_c is either a    signal name
  5303.            defined in <_s_i_g_n_a_l._h>, or a signal number.  If a
  5304.            _s_i_g_s_p_e_c is EEEEXXXXIIIITTTT (0) the command _a_r_g is executed on exit
  5305.            from the    shell.    If a _s_i_g_s_p_e_c is    DDDDEEEEBBBBUUUUGGGG, the command _a_r_g
  5306.            is executed after every _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSSSHHHHEEEELLLLLLLL
  5307.            GGGGRRRRAAAAMMMMMMMMAAAARRRR above).    The ----llll option causes the shell to
  5308.            print a list of signal names and    their corresponding
  5309.            numbers.     Signals ignored upon entry to the shell
  5310.            cannot be trapped or reset.  Trapped signals are    reset
  5311.            to their    original values    in a child process when    it is
  5312.            created.     The return status is false if any _s_i_g_s_p_e_c is
  5313.            invalid;    otherwise ttttrrrraaaapppp returns true.
  5314.  
  5315.       ttttyyyyppppeeee [----aaaattttpppp] _n_a_m_e [_n_a_m_e ...]
  5316.            With no options,    indicate how each _n_a_m_e would be
  5317.            interpreted if used as a    command    name.  If the ----tttt
  5318.            option is used, ttttyyyyppppeeee prints a string which is one of
  5319.            _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or _f_i_l_e if _n_a_m_e is
  5320.            an alias, shell reserved    word, function,    builtin, or
  5321.            disk file, respectively.     If the    _n_a_m_e is    not found,
  5322.            then nothing is printed,    and an exit status of false is
  5323.            returned.  If the ----pppp option is used, ttttyyyyppppeeee either
  5324.            returns the name    of the disk file that would be
  5325.            executed    if _n_a_m_e    were specified as a command name, or
  5326.            nothing if type -t name _w_o_u_l_d _n_o_t _r_e_t_u_r_n    _f_i_l_e.  If a
  5327.            command is hashed, ----pppp prints the    hashed value, not
  5328.            necessarily the file that appears first in PPPPAAAATTTTHHHH.     If
  5329.            the ----aaaa option is    used, ttttyyyyppppeeee prints all of the places
  5330.            that contain an executable named    _n_a_m_e.  This includes
  5331.            aliases and functions, if and only if the ----pppp option is
  5332.            not also    used.  The table of hashed commands is not
  5333.            consulted when using ----aaaa.     ttttyyyyppppeeee returns true if any of
  5334.            the arguments are found,    false if none are found.
  5335.  
  5336.       uuuulllliiiimmmmiiiitttt [----SSSSHHHHaaaaccccddddffffllllmmmmnnnnppppssssttttuuuuvvvv [_l_i_m_i_t]]
  5337.            Provides    control    over the resources available to    the
  5338.            shell and to processes started by it, on    systems    that
  5339.            allow such control.  The    value of _l_i_m_i_t can be a    number
  5340.  
  5341.  
  5342.  
  5343.      Page 81                         (printed 3/25/99)
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5351.  
  5352.  
  5353.  
  5354.            in the unit specified for the resource, or the value
  5355.            uuuunnnnlllliiiimmmmiiiitttteeeedddd.  The ----HHHH and ----SSSS options specify that the hard
  5356.            or soft limit is    set for    the given resource.  A hard
  5357.            limit cannot be increased once it is set; a soft    limit
  5358.            may be increased    up to the value    of the hard limit.  If
  5359.            neither ----HHHH nor ----SSSS is specified, both the    soft and hard
  5360.            limits are set.    If _l_i_m_i_t is omitted, the current value
  5361.            of the soft limit of the    resource is printed, unless
  5362.            the ----HHHH option is    given.    When more than one resource is
  5363.            specified, the limit name and unit are printed before
  5364.            the value.  Other options are interpreted as follows:
  5365.            ----aaaa   All    current    limits are reported
  5366.            ----cccc   The    maximum    size of    core files created
  5367.            ----dddd   The    maximum    size of    a process's data segment
  5368.            ----ffff   The    maximum    size of    files created by the shell
  5369.            ----llll   The    maximum    size that may be locked    into memory
  5370.            ----mmmm   The    maximum    resident set size
  5371.            ----nnnn   The    maximum    number of open file descriptors    (most
  5372.             systems do not allow this value to be set)
  5373.            ----pppp   The    pipe size in 512-byte blocks (this may not be
  5374.             set)
  5375.            ----ssss   The    maximum    stack size
  5376.            ----tttt   The    maximum    amount of cpu time in seconds
  5377.            ----uuuu   The    maximum    number of processes available to a
  5378.             single user
  5379.            ----vvvv   The    maximum    amount of virtual memory available to
  5380.             the    shell
  5381.  
  5382.            If _l_i_m_i_t    is given, it is    the new    value of the specified
  5383.            resource    (the ----aaaa    option is display only).  If no    option
  5384.            is given, then ----ffff is assumed.  Values are in 1024-byte
  5385.            increments, except for ----tttt, which    is in seconds, ----pppp,
  5386.            which is    in units of 512-byte blocks, and ----nnnn and    ----uuuu,
  5387.            which are unscaled values.  The return status is    0
  5388.            unless an invalid option    is encountered,    a non-numeric
  5389.            argument    other than uuuunnnnlllliiiimmmmiiiitttteeeedddd is    supplied as _l_i_m_i_t, or
  5390.            an error    occurs while setting a new limit.
  5391.  
  5392.       uuuummmmaaaasssskkkk    [----pppp] [----SSSS] [_m_o_d_e]
  5393.            The user    file-creation mask is set to _m_o_d_e.  If _m_o_d_e
  5394.            begins with a digit, it is interpreted as an octal
  5395.            number; otherwise it is interpreted as a    symbolic mode
  5396.            mask similar to that accepted by    _c_h_m_o_d(1).  If _m_o_d_e is
  5397.            omitted,    or if the ----SSSS option is supplied, the current
  5398.            value of    the mask is printed.  The ----SSSS option causes the
  5399.            mask to be printed in symbolic form; the    default    output
  5400.            is an octal number.  If the ----pppp option is    supplied, and
  5401.            _m_o_d_e is omitted,    the output is in a form    that may be
  5402.            reused as input.     The return status is 0    if the mode
  5403.            was successfully    changed    or if no _m_o_d_e argument was
  5404.            supplied, and false otherwise.
  5405.  
  5406.  
  5407.  
  5408.  
  5409.      Page 82                         (printed 3/25/99)
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5417.  
  5418.  
  5419.  
  5420.       uuuunnnnaaaalllliiiiaaaassss [-aaaa] [_n_a_m_e ...]
  5421.            Remove _n_a_m_es from the list of defined aliases.  If ----aaaa
  5422.            is supplied, all    alias definitions are removed.    The
  5423.            return value is true unless a supplied _n_a_m_e is not a
  5424.            defined alias.
  5425.  
  5426.       uuuunnnnsssseeeetttt    [-ffffvvvv] [_n_a_m_e ...]
  5427.            For each    _n_a_m_e, remove the corresponding variable    or
  5428.            function.  If no    options    are supplied, or the ----vvvv    option
  5429.            is given, each _n_a_m_e refers to a shell variable.    Read-
  5430.            only variables may not be unset.     If ----ffff is specifed,
  5431.            each _n_a_m_e refers    to a shell function, and the function
  5432.            definition is removed.  Each unset variable or function
  5433.            is removed from the environment passed to subsequent
  5434.            commands.  If any of RRRRAAAANNNNDDDDOOOOMMMM, SSSSEEEECCCCOOOONNNNDDDDSSSS, LLLLIIIINNNNEEEENNNNOOOO, HHHHIIIISSSSTTTTCCCCMMMMDDDD,
  5435.            or DDDDIIIIRRRRSSSSTTTTAAAACCCCKKKK are unset, they lose    their special
  5436.            properties, even    if they    are subsequently reset.     The
  5437.            exit status is true unless a _n_a_m_e does not exist    or is
  5438.            readonly.
  5439.  
  5440.       wwwwaaaaiiiitttt [_n]
  5441.            Wait for    the specified process and return its
  5442.            termination status.  _n may be a process ID or a job
  5443.            specification; if a job spec is given, all processes in
  5444.            that job's pipeline are waited for.  If _n is not    given,
  5445.            all currently active child processes are    waited for,
  5446.            and the return status is    zero.  If _n specifies a    non-
  5447.            existent    process    or job,    the return status is 127.
  5448.            Otherwise, the return status is the exit    status of the
  5449.            last process or job waited for.
  5450.  
  5451.      RRRREEEESSSSTTTTRRRRIIIICCCCTTTTEEEEDDDD    SSSSHHHHEEEELLLLLLLL
  5452.       If bbbbaaaasssshhhh is started with the name rrrrbbbbaaaasssshhhh, or the ----rrrr option is
  5453.       supplied at invocation, the shell becomes restricted.     A
  5454.       restricted shell is used to set up an    environment more
  5455.       controlled than the standard shell.  It behaves identically
  5456.       to bbbbaaaasssshhhh with the exception that the following    are disallowed
  5457.       or not performed:
  5458.  
  5459.       +o    changing    directories with ccccdddd
  5460.  
  5461.       +o    setting or unsetting the    values of SSSSHHHHEEEELLLLLLLL, PPPPAAAATTTTHHHH, EEEENNNNVVVV, or
  5462.            BBBBAAAASSSSHHHH____EEEENNNNVVVV
  5463.  
  5464.       +o    specifying command names    containing ////
  5465.  
  5466.       +o    specifying a file name containing a //// as    an argument to
  5467.            the .... builtin command
  5468.  
  5469.       +o    importing function definitions from the shell
  5470.            environment at startup
  5471.  
  5472.  
  5473.  
  5474.  
  5475.      Page 83                         (printed 3/25/99)
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5483.  
  5484.  
  5485.  
  5486.       +o    parsing the value of SSSSHHHHEEEELLLLLLLLOOOOPPPPTTTTSSSS from the shell
  5487.            environment at startup
  5488.  
  5489.       +o    redirecting output using    the >, >|, <>, >&, &>, and >>
  5490.            redirection operators
  5491.  
  5492.       +o    using the eeeexxxxeeeecccc builtin command to replace the shell
  5493.            with another command
  5494.  
  5495.       +o    adding or deleting builtin commands with    the ----ffff and ----dddd
  5496.            options to the eeeennnnaaaabbbblllleeee builtin command
  5497.  
  5498.       +o    specifying the ----pppp option    to the ccccoooommmmmmmmaaaannnndddd builtin command
  5499.  
  5500.       +o    turning off restricted mode with    sssseeeetttt ++++rrrr or sssseeeetttt ++++oooo
  5501.            rrrreeeessssttttrrrriiiicccctttteeeedddd.
  5502.  
  5503.       These    restrictions are enforced after    any startup files are
  5504.       read.
  5505.  
  5506.       When a command that is found to be a shell script is
  5507.       executed (see    CCCCOOOOMMMMMMMMAAAANNNNDDDD    EEEEXXXXEEEECCCCUUUUTTTTIIIIOOOONNNN above), rrrrbbbbaaaasssshhhh    turns off any
  5508.       restrictions in the shell spawned to execute the script.
  5509.  
  5510.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  5511.       _B_a_s_h _F_e_a_t_u_r_e_s, Brian Fox and Chet Ramey
  5512.       _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
  5513.       _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
  5514.      _U_t_i_l_i_t_i_e_s,    IEEE
  5515.       _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e (_P_O_S_I_X) _P_a_r_t _2: _S_h_e_l_l _a_n_d
  5516.       _s_h(1), _k_s_h(1), _c_s_h(1)
  5517.       _e_m_a_c_s(1), _v_i(1)
  5518.       _r_e_a_d_l_i_n_e(3)
  5519.  
  5520.      FFFFIIIILLLLEEEESSSS
  5521.       /_b_i_n/_b_a_s_h
  5522.            The bbbbaaaasssshhhh    executable
  5523.       /_e_t_c/_p_r_o_f_i_l_e
  5524.            The systemwide initialization file, executed for    login
  5525.            shells
  5526.       ~/._b_a_s_h__p_r_o_f_i_l_e
  5527.            The personal initialization file, executed for login
  5528.            shells
  5529.       ~/._b_a_s_h_r_c
  5530.            The individual per-interactive-shell startup file
  5531.       ~/._b_a_s_h__l_o_g_o_u_t
  5532.            The individual login shell cleanup file,    executed when
  5533.            a login shell exits
  5534.       ~/._i_n_p_u_t_r_c
  5535.            Individual _r_e_a_d_l_i_n_e initialization file
  5536.  
  5537.      AAAAUUUUTTTTHHHHOOOORRRRSSSS
  5538.  
  5539.  
  5540.  
  5541.      PPPPaaaaggggeeee 88884444                         ((((pppprrrriiiinnnntttteeeedddd 3333////22225555////99999999))))
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5549.  
  5550.  
  5551.  
  5552.       Brian    Fox, Free Software Foundation
  5553.       bfox@gnu.ai.MIT.Edu
  5554.  
  5555.       Chet Ramey, Case Western Reserve University
  5556.       chet@ins.CWRU.Edu
  5557.  
  5558.      BBBBUUUUGGGG RRRREEEEPPPPOOOORRRRTTTTSSSS
  5559.       If you find a    bug in bbbbaaaasssshhhh,,,, you should    report it.  But    first,
  5560.       you should make sure that it really is a bug,    and that it
  5561.       appears in the latest    version    of bbbbaaaasssshhhh    that you have.
  5562.  
  5563.       Once you have    determined that    a bug actually exists, use the
  5564.       _b_a_s_h_b_u_g command to submit a bug report.  If you have a fix,
  5565.       you are encouraged to    mail that as well!  Suggestions    and
  5566.       `philosophical' bug reports may be mailed to _b_u_g-
  5567.       _b_a_s_h@_g_n_u._o_r_g or posted to the    Usenet newsgroup ggggnnnnuuuu....bbbbaaaasssshhhh....bbbbuuuugggg.
  5568.  
  5569.       ALL bug reports should include:
  5570.  
  5571.       The version number of    bbbbaaaasssshhhh
  5572.       The hardware and operating system
  5573.       The compiler used to compile
  5574.       A description    of the bug behaviour
  5575.       A short script or `recipe' which exercises the bug
  5576.  
  5577.       _b_a_s_h_b_u_g inserts the first three items    automatically into the
  5578.       template it provides for filing a bug    report.
  5579.  
  5580.       Comments and bug reports concerning this manual page should
  5581.       be directed to _c_h_e_t@_i_n_s._C_W_R_U._E_d_u.
  5582.  
  5583.      BBBBUUUUGGGGSSSS
  5584.       It's too big and too slow.
  5585.  
  5586.       There    are some subtle    differences between bbbbaaaasssshhhh and
  5587.       traditional versions of sssshhhh, mostly because of    the PPPPOOOOSSSSIIIIXXXX
  5588.       specification.
  5589.  
  5590.       Aliases are confusing    in some    uses.
  5591.  
  5592.       Shell    builtin    commands and functions are not
  5593.       stoppable/restartable.
  5594.  
  5595.       Compound commands and    command    sequences of the form `a ; b ;
  5596.       c' are not handled gracefully    when process suspension    is
  5597.       attempted.  When a process is    stopped, the shell immediately
  5598.       executes the next command in the sequence.  It suffices to
  5599.       place    the sequence of    commands between parentheses to    force
  5600.       it into a subshell, which may    be stopped as a    unit.
  5601.  
  5602.       Commands inside of $$$$((((...)))) command substitution are not
  5603.       parsed until substitution is attempted.  This    will delay
  5604.  
  5605.  
  5606.  
  5607.      Page 85                         (printed 3/25/99)
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.      BBBBAAAASSSSHHHH((((1111))))             GGGGNNNNUUUU ((((1111999999999999 JJJJaaaannnn 22220000))))               BBBBAAAASSSSHHHH((((1111))))
  5615.  
  5616.  
  5617.  
  5618.       error    reporting until    some time after    the command is
  5619.       entered.
  5620.  
  5621.       Array    variables may not (yet)    be exported.
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.  
  5672.  
  5673.      Page 86                         (printed 3/25/99)
  5674.  
  5675.  
  5676.  
  5677.